From 2ce41bc16e570d66a4a49691e4b88ac4d171c44c Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 08:10:28 +0930 Subject: [PATCH 001/222] chore: sanitized repo --- .gitlab-ci.yml | 66 + .gitmodules | 4 + .markdownlint-cli2.jsonc | 5 + README.md | 7 + gitlab-ci | 1 + public/CA/38d0082d.pem | 43 + public/CA/CRL/Earth_VPN_CA.crl | 22 + public/CA/CRL/NFCCA.crl | Bin 0 -> 892 bytes public/CA/CRL/NFC_Root_CA.crl | 26 + public/CA/CRL/NWWPegasusVPNCA.crl | 22 + public/CA/CRL/NWWRootCA.crl | 29 + public/CA/CRL/NWWVPNCA.crl | 29 + public/CA/CRL/NWW_Root_CA.crl | 32 + public/CA/CRL/Pegasus_VPN_CA.crl | 19 + public/CA/Earth_VPN_CA.crt | 44 + public/CA/NFCCA.crt | 35 + public/CA/NFC_Root_CA.crt | 43 + public/CA/NWWRootCA.crt | 29 + public/CA/NWWVPNCA.crt | 35 + public/CA/NWW_Root_CA.crt | 43 + public/CA/Pegasus_VPN_CA.crt | 43 + ...6498e823d880414b763cd9cc813ef1fceecbf8.crt | 44 + ...7f3ab4d51614749a1d1171a4433fc000499922.crt | 29 + ...B29700FF9E229EA866C1F718E2ED73DE5FC38E.crt | 127 ++ ...355ad0a3d470d1f1608566c48df94b9da5f308.crt | 43 + ...c674f8bf82d0aea70e05aafc8ddddbab9bab56.crt | 35 + .../CA/public/Developer-jonathon.lockwood.crt | 47 + public/CA/public/Earth_VPN_CA.crt | 44 + ...NFC_Public_Website-nofusscomputing.com.crt | 34 + public/CA/public/NFC_Root_CA.crt | 43 + public/CA/public/NWW_Root_CA.crt | 43 + .../NWW_VPN_Server-vpn.networkedweb.local.crt | 40 + public/CA/public/Pegasus_VPN_CA.crt | 43 + public/images/nfc_header.png | Bin 0 -> 34936 bytes public/index.html | 52 + wiki/current/index.md | 3 + .../info/150225_choose_internet_service.txt | 109 ++ wiki/current/info/mantis/01_access.txt | 50 + wiki/current/info/mantis/02_browse.txt | 36 + wiki/current/info/mantis/03_tickets.txt | 108 ++ .../current/info/mantis/04_manage_account.txt | 38 + .../info/mantis/05_workflow_transitions.txt | 109 ++ wiki/current/info/mantis/home.txt | 38 + wiki/current/info/mdt/applications.txt | 47 + wiki/current/info/mdt/home.txt | 27 + .../app_config_files/__template.txt | 9 + .../app_config_files/mozilla_cfg.txt | 52 + .../mozilla_local_settings_js.txt | 10 + .../application_xml_file.txt | 151 +++ .../available_applications_xml_file.txt | 43 + .../configuration.txt | 59 + .../administration_documentation/home.txt | 31 + .../managed_installation_and_deployment.txt | 63 + .../launch_managed_application_installer.txt | 51 + .../administration_documentation/logging.txt | 20 + .../administration_documentation/notes.txt | 16 + .../projects/application_manager/features.txt | 32 + .../projects/application_manager/home.txt | 25 + .../application_categories.txt | 21 + .../user_documentation/home.txt | 23 + .../user_documentation/interface.txt | 14 + wiki/current/projects/beta_tester.txt | 70 ++ wiki/current/projects/home.txt | 17 + wiki/current/projects/logongui.txt | 154 +++ .../projects/logongui/script_template.txt | 50 + wiki/current/projects/scms/command_line.txt | 16 + wiki/current/projects/scms/home.txt | 41 + .../projects/scms/scms_client_changelog.txt | 1070 +++++++++++++++++ .../projects/scms/scms_server_changelog.txt | 327 +++++ wiki/current/projects/xbmc_addons/home.txt | 9 + .../projects/xbmc_addons/nofussconfluence.txt | 18 + .../applications/logongui/logonguinormal.png | Bin 0 -> 74113 bytes .../logongui/logonguinoscripts.png | Bin 0 -> 75446 bytes .../applications/logongui/logonguiwarning.png | Bin 0 -> 75348 bytes .../couchpotato-windows_firewall.jpg | Bin 0 -> 18419 bytes .../software_install/xbmc/xbmcvideoinfo.png | Bin 0 -> 48074 bytes .../media/public/help/cert-software.png | Bin 0 -> 10622 bytes .../media/public/help/installsoftware.png | Bin 0 -> 10806 bytes .../help/location_windows_error_reports.png | Bin 0 -> 30662 bytes .../help/mantis/mantisforgotpassword.png | Bin 0 -> 9614 bytes .../media/public/help/mantis/mantislogon.png | Bin 0 -> 12295 bytes .../public/help/mantis/mantislogonscreen.png | Bin 0 -> 8982 bytes .../public/help/mantis/mantismenubar.png | Bin 0 -> 1709 bytes .../public/help/mantis/mantismonitor.png | Bin 0 -> 1651 bytes .../media/public/help/mantis/mantisreport.png | Bin 0 -> 9188 bytes .../help/mantis/mantisreportselectproject.png | Bin 0 -> 1631 bytes .../media/public/help/mdt/mdtapplications.png | Bin 0 -> 8435 bytes .../media/public/help/mdt/mdtapptree.png | Bin 0 -> 16152 bytes .../media/public/help/mdt/mdtstructure.png | Bin 0 -> 9214 bytes .../images/media/public/help/mdtstructure.png | Bin 0 -> 12868 bytes .../media/public/help/software-signature.png | Bin 0 -> 9698 bytes .../media/public/logos/nfc_dfs_logo.png | Bin 0 -> 12913 bytes .../images/media/public/logos/nfc_header.png | Bin 0 -> 29048 bytes .../media/public/logos/nfc_mantis_logo.png | Bin 0 -> 29428 bytes .../media/public/logos/nfc_wiki_logo.png | Bin 0 -> 25694 bytes .../media/public/myrackmountcabinet.jpg | Bin 0 -> 96814 bytes .../application_manager/icons/compress.png | Bin 0 -> 10001 bytes .../application_manager/icons/developer.png | Bin 0 -> 11342 bytes .../application_manager/icons/driver.png | Bin 0 -> 11173 bytes .../application_manager/icons/image.png | Bin 0 -> 7209 bytes .../application_manager/icons/multimedia.png | Bin 0 -> 13958 bytes .../application_manager/icons/null.png | Bin 0 -> 2537 bytes .../application_manager/icons/office.png | Bin 0 -> 16197 bytes .../application_manager/icons/runtime.png | Bin 0 -> 15411 bytes .../application_manager/icons/utility.png | Bin 0 -> 18417 bytes .../application_manager/icons/webbrowser.png | Bin 0 -> 23537 bytes .../management_interface.png | Bin 0 -> 34825 bytes .../images/media/public/scms/adobe_flash.png | Bin 0 -> 9474 bytes .../images/media/public/scms/amd_catalyst.png | Bin 0 -> 9364 bytes .../images/media/public/scms/couchpotato.png | Bin 0 -> 7643 bytes .../images/media/public/scms/firefox.png | Bin 0 -> 17301 bytes .../images/media/public/scms/games.png | Bin 0 -> 15629 bytes .../images/media/public/scms/gimp.png | Bin 0 -> 12868 bytes .../images/media/public/scms/googlechrome.png | Bin 0 -> 12217 bytes .../images/media/public/scms/irfanview.png | Bin 0 -> 14569 bytes .../images/media/public/scms/java.png | Bin 0 -> 7867 bytes .../images/media/public/scms/kodi.png | Bin 0 -> 4317 bytes .../media/public/scms/mediacompanion.png | Bin 0 -> 10557 bytes .../media/public/scms/microsoft_net.png | Bin 0 -> 5579 bytes .../public/scms/microsoft_visual_studio.png | Bin 0 -> 13245 bytes .../media/public/scms/microsoft_windows.png | Bin 0 -> 2008 bytes .../images/media/public/scms/mysql.png | Bin 0 -> 4242 bytes .../media/public/scms/notepadplusplus.png | Bin 0 -> 18888 bytes .../images/media/public/scms/nvidea.png | Bin 0 -> 18683 bytes .../images/media/public/scms/openoffice.png | Bin 0 -> 12844 bytes .../images/media/public/scms/openvpn.png | Bin 0 -> 12177 bytes .../images/media/public/scms/origin.png | Bin 0 -> 7508 bytes .../images/media/public/scms/sickbeard.png | Bin 0 -> 16246 bytes .../images/media/public/scms/skype.png | Bin 0 -> 13145 bytes .../images/media/public/scms/steam.png | Bin 0 -> 5320 bytes .../images/media/public/scms/thunderbird.png | Bin 0 -> 19523 bytes .../images/media/public/scms/ultravnc.png | Bin 0 -> 13105 bytes .../dokuwiki/images/media/public/scms/vlc.png | Bin 0 -> 7678 bytes .../images/media/public/scms/wget.png | Bin 0 -> 16006 bytes .../images/media/wiki/_notes/logo.png.mno | 4 + wiki/robots.txt | 9 + 136 files changed, 4171 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 .gitmodules create mode 100644 .markdownlint-cli2.jsonc create mode 100644 README.md create mode 160000 gitlab-ci create mode 100644 public/CA/38d0082d.pem create mode 100644 public/CA/CRL/Earth_VPN_CA.crl create mode 100644 public/CA/CRL/NFCCA.crl create mode 100644 public/CA/CRL/NFC_Root_CA.crl create mode 100644 public/CA/CRL/NWWPegasusVPNCA.crl create mode 100644 public/CA/CRL/NWWRootCA.crl create mode 100644 public/CA/CRL/NWWVPNCA.crl create mode 100644 public/CA/CRL/NWW_Root_CA.crl create mode 100644 public/CA/CRL/Pegasus_VPN_CA.crl create mode 100644 public/CA/Earth_VPN_CA.crt create mode 100644 public/CA/NFCCA.crt create mode 100644 public/CA/NFC_Root_CA.crt create mode 100644 public/CA/NWWRootCA.crt create mode 100644 public/CA/NWWVPNCA.crt create mode 100644 public/CA/NWW_Root_CA.crt create mode 100644 public/CA/Pegasus_VPN_CA.crt create mode 100644 public/CA/certs/236498e823d880414b763cd9cc813ef1fceecbf8.crt create mode 100644 public/CA/certs/9c7f3ab4d51614749a1d1171a4433fc000499922.crt create mode 100644 public/CA/certs/A9B29700FF9E229EA866C1F718E2ED73DE5FC38E.crt create mode 100644 public/CA/certs/ac355ad0a3d470d1f1608566c48df94b9da5f308.crt create mode 100644 public/CA/certs/d8c674f8bf82d0aea70e05aafc8ddddbab9bab56.crt create mode 100644 public/CA/public/Developer-jonathon.lockwood.crt create mode 100644 public/CA/public/Earth_VPN_CA.crt create mode 100644 public/CA/public/NFC_Public_Website-nofusscomputing.com.crt create mode 100644 public/CA/public/NFC_Root_CA.crt create mode 100644 public/CA/public/NWW_Root_CA.crt create mode 100644 public/CA/public/NWW_VPN_Server-vpn.networkedweb.local.crt create mode 100644 public/CA/public/Pegasus_VPN_CA.crt create mode 100644 public/images/nfc_header.png create mode 100644 public/index.html create mode 100644 wiki/current/index.md create mode 100755 wiki/current/info/150225_choose_internet_service.txt create mode 100755 wiki/current/info/mantis/01_access.txt create mode 100755 wiki/current/info/mantis/02_browse.txt create mode 100755 wiki/current/info/mantis/03_tickets.txt create mode 100755 wiki/current/info/mantis/04_manage_account.txt create mode 100644 wiki/current/info/mantis/05_workflow_transitions.txt create mode 100755 wiki/current/info/mantis/home.txt create mode 100755 wiki/current/info/mdt/applications.txt create mode 100755 wiki/current/info/mdt/home.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/app_config_files/__template.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/app_config_files/mozilla_cfg.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/app_config_files/mozilla_local_settings_js.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/application_xml_file.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/available_applications_xml_file.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/configuration.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/home.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/how_to/managed_installation_and_deployment.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/launch_managed_application_installer.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/logging.txt create mode 100755 wiki/current/projects/application_manager/administration_documentation/notes.txt create mode 100755 wiki/current/projects/application_manager/features.txt create mode 100755 wiki/current/projects/application_manager/home.txt create mode 100755 wiki/current/projects/application_manager/user_documentation/application_categories.txt create mode 100755 wiki/current/projects/application_manager/user_documentation/home.txt create mode 100755 wiki/current/projects/application_manager/user_documentation/interface.txt create mode 100644 wiki/current/projects/beta_tester.txt create mode 100755 wiki/current/projects/home.txt create mode 100755 wiki/current/projects/logongui.txt create mode 100644 wiki/current/projects/logongui/script_template.txt create mode 100755 wiki/current/projects/scms/command_line.txt create mode 100755 wiki/current/projects/scms/home.txt create mode 100755 wiki/current/projects/scms/scms_client_changelog.txt create mode 100755 wiki/current/projects/scms/scms_server_changelog.txt create mode 100755 wiki/current/projects/xbmc_addons/home.txt create mode 100755 wiki/current/projects/xbmc_addons/nofussconfluence.txt create mode 100755 wiki/dokuwiki/images/media/public/applications/logongui/logonguinormal.png create mode 100755 wiki/dokuwiki/images/media/public/applications/logongui/logonguinoscripts.png create mode 100755 wiki/dokuwiki/images/media/public/applications/logongui/logonguiwarning.png create mode 100755 wiki/dokuwiki/images/media/public/help/applications/couchpotato-windows_firewall.jpg create mode 100755 wiki/dokuwiki/images/media/public/help/applications/software_install/xbmc/xbmcvideoinfo.png create mode 100755 wiki/dokuwiki/images/media/public/help/cert-software.png create mode 100755 wiki/dokuwiki/images/media/public/help/installsoftware.png create mode 100755 wiki/dokuwiki/images/media/public/help/location_windows_error_reports.png create mode 100755 wiki/dokuwiki/images/media/public/help/mantis/mantisforgotpassword.png create mode 100755 wiki/dokuwiki/images/media/public/help/mantis/mantislogon.png create mode 100755 wiki/dokuwiki/images/media/public/help/mantis/mantislogonscreen.png create mode 100755 wiki/dokuwiki/images/media/public/help/mantis/mantismenubar.png create mode 100755 wiki/dokuwiki/images/media/public/help/mantis/mantismonitor.png create mode 100755 wiki/dokuwiki/images/media/public/help/mantis/mantisreport.png create mode 100755 wiki/dokuwiki/images/media/public/help/mantis/mantisreportselectproject.png create mode 100755 wiki/dokuwiki/images/media/public/help/mdt/mdtapplications.png create mode 100755 wiki/dokuwiki/images/media/public/help/mdt/mdtapptree.png create mode 100755 wiki/dokuwiki/images/media/public/help/mdt/mdtstructure.png create mode 100755 wiki/dokuwiki/images/media/public/help/mdtstructure.png create mode 100755 wiki/dokuwiki/images/media/public/help/software-signature.png create mode 100755 wiki/dokuwiki/images/media/public/logos/nfc_dfs_logo.png create mode 100755 wiki/dokuwiki/images/media/public/logos/nfc_header.png create mode 100755 wiki/dokuwiki/images/media/public/logos/nfc_mantis_logo.png create mode 100755 wiki/dokuwiki/images/media/public/logos/nfc_wiki_logo.png create mode 100755 wiki/dokuwiki/images/media/public/myrackmountcabinet.jpg create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/icons/compress.png create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/icons/developer.png create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/icons/driver.png create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/icons/image.png create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/icons/multimedia.png create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/icons/null.png create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/icons/office.png create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/icons/runtime.png create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/icons/utility.png create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/icons/webbrowser.png create mode 100755 wiki/dokuwiki/images/media/public/projects/application_manager/management_interface.png create mode 100755 wiki/dokuwiki/images/media/public/scms/adobe_flash.png create mode 100755 wiki/dokuwiki/images/media/public/scms/amd_catalyst.png create mode 100755 wiki/dokuwiki/images/media/public/scms/couchpotato.png create mode 100755 wiki/dokuwiki/images/media/public/scms/firefox.png create mode 100755 wiki/dokuwiki/images/media/public/scms/games.png create mode 100755 wiki/dokuwiki/images/media/public/scms/gimp.png create mode 100755 wiki/dokuwiki/images/media/public/scms/googlechrome.png create mode 100755 wiki/dokuwiki/images/media/public/scms/irfanview.png create mode 100755 wiki/dokuwiki/images/media/public/scms/java.png create mode 100755 wiki/dokuwiki/images/media/public/scms/kodi.png create mode 100755 wiki/dokuwiki/images/media/public/scms/mediacompanion.png create mode 100755 wiki/dokuwiki/images/media/public/scms/microsoft_net.png create mode 100755 wiki/dokuwiki/images/media/public/scms/microsoft_visual_studio.png create mode 100755 wiki/dokuwiki/images/media/public/scms/microsoft_windows.png create mode 100755 wiki/dokuwiki/images/media/public/scms/mysql.png create mode 100755 wiki/dokuwiki/images/media/public/scms/notepadplusplus.png create mode 100755 wiki/dokuwiki/images/media/public/scms/nvidea.png create mode 100755 wiki/dokuwiki/images/media/public/scms/openoffice.png create mode 100755 wiki/dokuwiki/images/media/public/scms/openvpn.png create mode 100755 wiki/dokuwiki/images/media/public/scms/origin.png create mode 100755 wiki/dokuwiki/images/media/public/scms/sickbeard.png create mode 100755 wiki/dokuwiki/images/media/public/scms/skype.png create mode 100755 wiki/dokuwiki/images/media/public/scms/steam.png create mode 100755 wiki/dokuwiki/images/media/public/scms/thunderbird.png create mode 100755 wiki/dokuwiki/images/media/public/scms/ultravnc.png create mode 100755 wiki/dokuwiki/images/media/public/scms/vlc.png create mode 100755 wiki/dokuwiki/images/media/public/scms/wget.png create mode 100755 wiki/dokuwiki/images/media/wiki/_notes/logo.png.mno create mode 100644 wiki/robots.txt diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..997df1c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,66 @@ +stages: + - validation + - release + - publish + + +variables: + GIT_SUBMODULE_STRATEGY: recursive + MY_PROJECT_ID: "13001358" + + +include: + - project: nofusscomputing/projects/gitlab-ci + ref: 1ef6c41818c40183f8019ea5cde48b4278e4d694 + file: + - conventional_commits/.gitlab-ci.yml + - gitlab_release/.gitlab-ci.yml + + +markdown lint: + image: node:alpine3.14 + stage: validation + before_script: + - npm install markdownlint-cli2 --global + - npm install markdownlint-cli2-formatter-junit --global + - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME" + - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests" + script: + - markdownlint-cli2 "**/*.md" "!gitlab-ci" 1>&1 || EXITCODE=$? + - echo DEBUG EXITCODE[$EXITCODE] + - mv markdown.junit.xml $CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/markdown.junit.xml + artifacts: + expire_in: 3 days + when: always + paths: + - "$CI_PROJECT_DIR/artifacts/*" + reports: + junit: + - "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/*.junit.xml" + rules: + - if: '$CI_COMMIT_BRANCH == "master"' + when: never + - if: '$CI_COMMIT_BRANCH' + exists: + - "**.md" + - when: never + + + + +Gitlab Release: + extends: + - .gitlab_release + + +pages: + stage: publish + script: + - echo publish page + artifacts: + paths: + - public + only: + - master + + diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..2930454 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "gitlab-ci"] + path = gitlab-ci + url = https://gitlab.com/nofusscomputing/projects/gitlab-ci.git + branch = master diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc new file mode 100644 index 0000000..01f98e3 --- /dev/null +++ b/.markdownlint-cli2.jsonc @@ -0,0 +1,5 @@ +{ + "outputFormatters": [ + [ "markdownlint-cli2-formatter-junit", { "name": "markdown.junit.xml" } ] + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..6d0db2b --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Pages urls + +the site is deployed to the following URLs: + +- [https://no-fuss-computing.gitlab.io/infrastructure/website](https://no-fuss-computing.gitlab.io/infrastructure/website) + +- [http://test.nofusscomputing.com](http://test.nofusscomputing.com) diff --git a/gitlab-ci b/gitlab-ci new file mode 160000 index 0000000..1ef6c41 --- /dev/null +++ b/gitlab-ci @@ -0,0 +1 @@ +Subproject commit 1ef6c41818c40183f8019ea5cde48b4278e4d694 diff --git a/public/CA/38d0082d.pem b/public/CA/38d0082d.pem new file mode 100644 index 0000000..6ed8a02 --- /dev/null +++ b/public/CA/38d0082d.pem @@ -0,0 +1,43 @@ +-----BEGIN CERTIFICATE----- +MIIHpTCCBY2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMCQVUx +CzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQL +EwNOV1cxFDASBgNVBAMMC05XV19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25h +dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr +ZWQgV2ViIENlcnRpZmljYXRlMB4XDTE3MTIyMTAwMDAwMFoXDTI3MTIyMDIzNTk1 +OVowgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAK +BgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTEx +MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv +bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBANNh/YQ88bqyR2569AwMnqe+9VjeUoFQcGgr +JjcS76lZaAERnbl49PJM6X9xcFBQoCD3S1WnNXL26ZtA+PKdfvZOL8GIkwZQrXNB +Ts2f4VP1dahuxuHYlmlwlpdT84JKZlDloUrDOgx0D707Z+ybUrTFjqaQjp/ZfybQ +QLiYfK/6v7K7rOh8WyeWWunDo8uYlZWmtmzAQU9IQimYWepZ4/O+yfWnUVRGvYMD +daALrNaj5MO41J13Y5sXDdl++yTCbujJ+xTDHKfjoJ+KpEuLa8VzWjJYAjm+TSXK +gWObOxpnrb4sW2bB2pPtwQoOKd3tXYW2bRKJHGt2pVzgyGUjZ1yGKFS04+cg9OpP +ePFtS4aTKVTMIe7BHwPA1fhu2efqmfP0vSY0EmRHuk9GIqo1r5EiC94xOcAuLkPG +RquMQr+moD27JrhhlF9vw/Z9pr6gZ+hUDYGbE0913F1mjdtYp1lBmaLysLwpI0lH +PUZdFdejCbnvPfH9EVxNRgbM5J/yzfRB//QRnufpjC2OgB6zTnifsYIOOSYHYgCK +4DLrin74j4YiUGm49wuTwdqk52B8bkDzx4cWwIpJWYIeQC2xMrR/RvdrDMxt1Frg +k5es0NHMWAzd2C2PRS2fmvuUdq2+QZRe721TvoeFLMI05PnUrxOkz/din8BNWtsN +AoBCi3FdAgMBAAGjggHGMIIBwjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRI +6WaWbdVLxOTffYdPlqd7zAw+7TCB3QYDVR0jBIHVMIHSgBRI6WaWbdVLxOTffYdP +lqd7zAw+7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYD +VQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05X +V19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3 +b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRl +ggEBMA4GA1UdDwEB/wQEAwIBBjBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vbm9m +dXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldXX1Jvb3RfQ0EuY3JsMEkGCCsGAQUF +BwEBBD0wOzA5BggrBgEFBQcwAoYtaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20v +Q0EvTldXX1Jvb3RfQ0EuY3J0MBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0B +AQsFAAOCAgEARpj46yWBnbJIfqh7V9c1AWZmbzqogJynp5AqyC2e8Rp59dpPKJ60 +BC2WVUMsCHqyhl6oZwmn2Ejud+iodGo4IwdgDneFvQQAiF7TVTBnBRHnup3rLtTX +zvqIBPyqBmrvZSjSfG0mStb3YWS41yj9bhsqy1qRTdXS+Ghc4I1DcOWu62NbhbP/ +UHPUEwCyPxEWLtxk0u8N8Hqmlr3qHHM53cKaOUUIn6VMtq2S0o39xWt7QuHWe3Aa +COQYaAVQ60f9cZUmw7h31d3oen7nrlaaDAp7i1e4HuTb8+PzetoGjJ8xCt4cbnp0 +ThQFdVuaLszSiHpmsKPvdazIVjhvT7CTM5EydsDHZFA6cMmWjYYm5f9MXbiCSebC +2q+2W2vO92yd/8JE3JCRc8A2Mi4RSw9SziN/MCvueorIFJXfawz3rARgk5KXKPNj +DBHcxxaQOTCJHLblGsv+9S/ANnucOihQRPWPGKGr80Yy5wQ8TKnuElvzrOjyR2Cj +HGqSX2ar1GnFtmDsfamnJ0kb+2Sbamt3slAxUM/Qc+SIWepVtSNb8IppWPCxmPOd +QyUMRayfkkc2qdo3xyUV1zE/alMPK6k0epyZ0+lyTo+sVpyzVq/D1wS63pUXiK/f +gB5/XW5AC1ngeN3DBlOc/R5mscyv4o4cHOauxMKjldGgGhqI0QnRSi4= +-----END CERTIFICATE----- diff --git a/public/CA/CRL/Earth_VPN_CA.crl b/public/CA/CRL/Earth_VPN_CA.crl new file mode 100644 index 0000000..2455d33 --- /dev/null +++ b/public/CA/CRL/Earth_VPN_CA.crl @@ -0,0 +1,22 @@ +-----BEGIN X509 CRL----- +MIIDjzCCAXcCAQEwDQYJKoZIhvcNAQELBQAwgaoxCzAJBgNVBAYTAkFVMQswCQYD +VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEOMAwGA1UECxMFRWFy +dGgxFTATBgNVBAMMDEVhcnRoX1ZQTl9DQTEoMCYGCSqGSIb3DQEJARYZaW50ZXJu +YWxAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0 +aWZpY2F0ZRcNMTcwOTAzMDE0MjAwWhcNMTcxMDAzMDE0MjAwWjCBhzBBAggigeQN +UjXbIRcNMTYwNzIzMDMwMDQ3WjAmMBgGA1UdGAQRGA8yMDE2MDcyMzAzMDAwMFow +CgYDVR0VBAMKAQQwQgIJAM2h1w1EQ5qtFw0xNjA3MjMwNTU2MjRaMCYwGAYDVR0Y +BBEYDzIwMTYwNzIzMDU1NjAwWjAKBgNVHRUEAwoBBaAOMAwwCgYDVR0UBAMCAQUw +DQYJKoZIhvcNAQELBQADggIBABLLdl2PjX5MlxZ6fhkmKsU47xlpWdG4UUKc2Mcb +ioi8HJKH4RgLOhVBEmtV91RsndCNf3TMpAzDH5zySCNhIZk5ZT1m3yk2TEMse34a +qTWzfEpCNGPbhDTz2Eu553LZKg8Vem0OEKHjKp0i0vOXG7TN/9SHBs5pOUDYX3Z/ +iK6Xt6wQ6Ajl4x8mfArivwmVVK0ZIQJpHSSHhv29HzzJpgu8ZuI16ooomGrnEnlF +Sv3tNo0UleARmzKd+dlTsSfPq/gmcX1J3bgTB2QqQTyhQRewn5TC74pJ5CC3wGeW +wzsI/xovSKWwgrWSKTfaKwAhnamJQ8Ya96zEgPnc+k4UJ0IMNdY47/3OlQIvtCmG +D16D6j4T9M6TbdBKSLdNTPZXXU1jXTc5qIUccBAZqJSxOHqp15JTx5x6mVqhx6AT +dmL+ydm8UjjG/1kc//qjuXkDc7WoklTPd6vGawBsezoS8T4+okrFIG9domcFVKrL +D+JyMe2ZkJpRferxdVOSh773M/mNBI430aL3TKY6oPhvwx7gmpCPX3trUv+gi/Om +9f7mHZFk/qUs3pomAffaZzeX9g3+sktMY2l3cTYqsAOZGrUDbFjks+LGbCmHhnVm +KTl7QRbEnte2Bpz4GeN0XAf9HntA2A0yfoOWgsH6FEkh8H839fBAErvzpqD0qCDV +xY2/ +-----END X509 CRL----- diff --git a/public/CA/CRL/NFCCA.crl b/public/CA/CRL/NFCCA.crl new file mode 100644 index 0000000000000000000000000000000000000000..4420166db17100be1a272d488e74c961dace4d3b GIT binary patch literal 892 zcmXqLVy-Y~VoYFSWHjJq$fA{gK5@VeS@5 zu%wZJxq+dffr)99ftmpq(0Ex<7G^F+76SCtfKxyrFnaBz;roD$%XT(@_EL^Qq-{rmjSg_TWR@pskSsw%)dGO=rvX-2b zMiJ9)os%0i-j(}VvA^qlcKmzSfzW2vrjIkVik5bl+eMWHzsv3q*rRy$tGbo=2Hpu> zRw{anZP#omIx+e7wQuUTFEDVn)aYCkUd5)RyKv4q<(@qg6np<`8^|RX&aVpTrq9!z}j*!RN$iKy-0q*QtO{+{0>a>wt<38OT( zW7h4rn(yfgmz-k^-Ermef6v>yl>7hkTCSIAN|ihusI}n})4YFg@l*fPhux#NexdX)|`-g=FT#vqj6>h zm(DEtl(Aar>vzFVshz4v3=5~+G^VeMSJ*wCF iLIqh5^GEOHc#0;@7e^PZDIgpbX4B} literal 0 HcmV?d00001 diff --git a/public/CA/CRL/NFC_Root_CA.crl b/public/CA/CRL/NFC_Root_CA.crl new file mode 100644 index 0000000..058e956 --- /dev/null +++ b/public/CA/CRL/NFC_Root_CA.crl @@ -0,0 +1,26 @@ +-----BEGIN X509 CRL----- +MIIEWTCCAkECAQEwDQYJKoZIhvcNAQELBQAwgaoxCzAJBgNVBAYTAkFVMQswCQYD +VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTkZD +MRQwEgYDVQQDDAtORkNfUm9vdF9DQTErMCkGCSqGSIb3DQEJARYcaGVscGRlc2tA +bm9mdXNzY29tcHV0aW5nLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0 +aWZpY2F0ZRcNMTgwODA1MDEyNzAwWhcNMTgxMDA0MDEyNzAwWjCCAVAwQQIIDa1c +UsioJyoXDTE1MTAzMTA0MzkxN1owJjAYBgNVHRgEERgPMjAxNTEwMzEwNDM5MDBa +MAoGA1UdFQQDCgEEMEECCBIR9spKIlyLFw0xNjAxMDkwMDM1NTNaMCYwGAYDVR0Y +BBEYDzIwMTYwMTA5MDAzNTAwWjAKBgNVHRUEAwoBBTBBAghovaIOdTUkJhcNMTUx +MDMxMDQ0NTM0WjAmMBgGA1UdGAQRGA8yMDE1MTAzMTA0NDUwMFowCgYDVR0VBAMK +AQQwQQIIdCmC/xpJTM0XDTE1MTAzMTA0NDMxOFowJjAYBgNVHRgEERgPMjAxNTEw +MzEwNDQzMDBaMAoGA1UdFQQDCgEEMEICCQD9Keh+217BPhcNMTUxMDMxMDQzMTE1 +WjAmMBgGA1UdGAQRGA8yMDE1MTAzMTA0MzEwMFowCgYDVR0VBAMKAQWgDjAMMAoG +A1UdFAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAjjuEFC9NS8IatH6V+bXVj+NuA +Y6BkDT/u4uOvKecLZjM8OuSAlj+yVPEp5d0QKFGEN/1fmkLyqRK/0vhoLNufwnzL +eM14l/aZpTudl8dVf2EeJa2i/whUP9AOf8QH4UQxtWzbmPzcrZbfJdrRe2L8g8xl +yyMi/htHszutqIP1ZuwhYFGFHJZNiUHwm/LV8Ht0ZnI05YrqsMY9VFVXOT46qbMH +CaL/jx0xd4+nrXcbTSD1aKlagkY/7nHh5JIyK5f0nWiZ6uIc1ZLrXjgvT3mG9oWC +fImXfeK/dD0Q8s67Tmcb8EyhuYPabb/h/Vw6IpUAGg5KxjW+fLfpeqS5sivDzp65 +lkgsYv4PCe7C2lW/sapBVx47ISXIaNLNR0gTA8dE5mTbHIIwaa4rDL3jvtmPkNa5 +qv/0HXH0oRYKjEQLFgCI77ZNU6bCXPmpCxiD+2s3+fEHxRHYjVn7Tyk0Qdeqrllu +8qKA18tP5icF0PXv7sVouXdHCBK4nLfgzHfaLr2zhVfO154evKzLDS1GmDcytCl+ +MFhA1RM94xfwOxPwiHJ/e4MpdJ3BE7lxRiyVoBQiV0xwP0clhoCadBMvvDvGnkGc +AZ7UQDK5YhXh06Pv+ByX3xxE9Vp7Bo/teFxIwYPVH2BmPAowVoMzCLkj36yv1keC +laDVPqeP/31+efeFsA== +-----END X509 CRL----- diff --git a/public/CA/CRL/NWWPegasusVPNCA.crl b/public/CA/CRL/NWWPegasusVPNCA.crl new file mode 100644 index 0000000..9b06b7d --- /dev/null +++ b/public/CA/CRL/NWWPegasusVPNCA.crl @@ -0,0 +1,22 @@ +-----BEGIN X509 CRL----- +MIIDtzCCAZ8CAQEwDQYJKoZIhvcNAQELBQAwgdkxCzAJBgNVBAYTAkFVMRYwFAYD +VQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3BlY2lmaWVkMRYwFAYD +VQQKEw1OZXR3b3JrZWQgV2ViMRswGQYDVQQLExJOV1cgUGVnYXN1cyBWUE4gQ0Ex +FzAVBgNVBAMTDlBlZ2FzdXMgVlBOIENBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5h +bEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRp +ZmljYXRlFw0xNTEwMjUwMDAwMDBaFw0xNTExMjMyMzU5NTlaMIGAMDoCAQoXDTE1 +MTAyNTAyMDAxMVowJjAYBgNVHRgEERgPMjAxNTEwMjUwMjAwMDBaMAoGA1UdFQQD +CgEJMEICCQC1TE15xf9+yxcNMTUxMDI1MDIwMDE4WjAmMBgGA1UdGAQRGA8yMDE1 +MTAyNTAyMDAwMFowCgYDVR0VBAMKAQmgDjAMMAoGA1UdFAQDAgEBMA0GCSqGSIb3 +DQEBCwUAA4ICAQA7ZZfRgAi2b38IqxXLsINcyczWQ8/y8SKVv4xlu0SRkfWBVYF5 +pqD5lIjwZNKIqIpUzq4AYqV3u7GnkPfQ7WDIMveZZwp6DL2Jc0cjz1gNsU0ezyxt +V0JQLppUbH/x3xBR/+NszvZaCVYFOyrlUFSYO06CqXWRgpnJuhk0vJQygU6C9xcO +OzM7JlgI0NT/O3IDPC4gh/TPFdKnKVfcNpFimwJ91w1eMvTkpys2BvrKk0/bAuQz +PVtCx45kqCyP8WiMb0PZmQKAOdIREHb4sGS2dPocBARYxwFYDwgQ8g3BqnHCLM87 +Og1+b3QACi2PZ4e3yV8pqJhXnix97N036WkVV11J9VLdOUIPzkXsDFMmkYh4z9Vg +GOA5lzRTXYJVk7E7t4BDT7cu6y8ugW2BsLMlh0XrGTDwNhzJ8GBYWAkG2t+H+N/m +hLsBqt0tn/8XQvkize7qauado1CaouWMHWwA84ZX811vXW29m3VmYxQl5Q3oJWul +Rp1M9xISRVzpRx6GuzVPzN9LEfI4ZvSvHLUva9i6A08hj5aUYDvgtXmyaC+PaxBs +SfX06CeylzOf4hm3hubcGu+5Ynke7ZtpECSGxr5I/72oC6zukkiv9i6FXC1oGxuo +pBBjuoeG2MmO8HdDKE0T5XqkqmQv7Um4clDYRInMCACSthtW8U0ry7Wamw== +-----END X509 CRL----- diff --git a/public/CA/CRL/NWWRootCA.crl b/public/CA/CRL/NWWRootCA.crl new file mode 100644 index 0000000..6f3f23f --- /dev/null +++ b/public/CA/CRL/NWWRootCA.crl @@ -0,0 +1,29 @@ +-----BEGIN X509 CRL----- +MIIE5zCCAs8CAQEwDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNVBAYTAkFVMQswCQYD +VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTldX +MRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24u +bG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdl +YiBDZXJ0aWZpY2F0ZRcNMTgwMjA1MDQ1OTAwWhcNMjAwODA1MDQ1OTAwWjCCAdgw +PwIGIBUQJxYnFw0xNTEwMjcwNzQ0NTZaMCYwGAYDVR0YBBEYDzIwMTUxMDI3MDc0 +NDAwWjAKBgNVHRUEAwoBBDBBAghaYikTObwI4BcNMTUxMDI3MDcxNTAwWjAmMBgG +A1UdGAQRGA8yMDE1MTAyNzA3MTQwMFowCgYDVR0VBAMKAQQwQgIJAMXtJgEvbEgG +Fw0xNzEyMjEyMzQ2NDFaMCYwGAYDVR0YBBEYDzIwMTcxMjIxMjM0NjAwWjAKBgNV +HRUEAwoBBDBCAgkAxe0mAS9sSAcXDTE3MTIyMjAwMDUxMVowJjAYBgNVHRgEERgP +MjAxNzEyMjIwMDA1MDBaMAoGA1UdFQQDCgEEMEICCQDF7SYBL2xICBcNMTcxMjIy +MDE0OTQ2WjAmMBgGA1UdGAQRGA8yMDE3MTIyMjAxNDkwMFowCgYDVR0VBAMKAQQw +QgIJAMXtJgEvbEgKFw0xODAxMDUwNTA3MzlaMCYwGAYDVR0YBBEYDzIwMTgwMTA1 +MDUwNzAwWjAKBgNVHRUEAwoBBDBCAgkA1bayDE6HOc0XDTE1MTAyNzA3MTAwNlow +JjAYBgNVHRgEERgPMjAxNTEwMjcwNzEwMDBaMAoGA1UdFQQDCgEEoA4wDDAKBgNV +HRQEAwIBCzANBgkqhkiG9w0BAQsFAAOCAgEAJbVR23uwFuOi4fCQHn/0gLm24PjI +xkXeim/Vep9vc3LCH1+r73O3Pf5kWKBmklul9MpywDAyPiV5wU6k2x8EMSKLEe+n +IRE+32JKPSGx2nluSn2IUonQKF+ZtG0hW367+D3HShdinzNuUbqfGGlAjZwmgKem +zydh7VSkvBxQersvXknPvoIjbTOfw0l10icE4WwbY5PtHdz+SYUH86UrVHPH5MG3 +tJEMnmZfbyGAs6vYm/NDD4cF4tIF4ziId7nmPBUf7dnFlw75xRUjyem397AnUOez +zS+K/j9u3V/um8jfaKkdXFfT8DOaiFv9YBsdwOTsgDFgKTalgWHbibOH2wk/ZrM6 +k+hfpgoE5/CtZyKKD/s5SuYcBYEfYY1M2g/QzU7RpScjPz+yvIBoOhitk+urHBBq +Cx3iM9HW1vNq8trJomeFkqGFSiN+Uv4hq51BThljLxaMoga2tE4hdeO3kIr2Ntv/ +acoTKbljxX2YxCvkZXombmX2wecORO3uS+TNKolgzU7FE8vRI6E7yC+jjdDpksYL +wVL7pa0kL2YtagpmOLFCeSlQ/iWlQMUSqBLbpyEWX/JvgVghUWcwn0n65UEr+zyQ +LzhaXpc2MNVRoskN1ONSCCJW34x2IBzG6+Pk/dKKKAna4340zG5txyKKl5jLkh5/ +YJP4oXLy576q/30= +-----END X509 CRL----- diff --git a/public/CA/CRL/NWWVPNCA.crl b/public/CA/CRL/NWWVPNCA.crl new file mode 100644 index 0000000..0e8b81b --- /dev/null +++ b/public/CA/CRL/NWWVPNCA.crl @@ -0,0 +1,29 @@ +-----BEGIN X509 CRL----- +MIIFDDCCAvQCAQEwDQYJKoZIhvcNAQEFBQAwgdYxCzAJBgNVBAYTAkFVMRYwFAYD +VQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3BlY2lmaWVkMRYwFAYD +VQQKEw1OZXR3b3JrZWQgV2ViMRMwEQYDVQQLEwpOV1cgVlBOIENBMRMwEQYDVQQD +EwpOV1cgVlBOIENBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBu +ZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmlj +YXRlFw0xNTA2MDUxMDU3MDBaFw0xNTA3MDUxMDU3MDBaMIIB1zBAAghGwdK73FPg +2hcNMTMxMjIzMDgzMjI5WjAlMAkGA1UdFQQCCgAwGAYDVR0YBBEYDzIwMTQwMjAx +MjM1NTUwWjBAAghL9H8/00JjmxcNMTMxMjI0MDA0NjQ5WjAlMAkGA1UdFQQCCgAw +GAYDVR0YBBEYDzIwMTQwMjAxMjM1NTM1WjBCAgkAgqnPP+Wf1YkXDTE1MDIwNzAx +MDgyNlowJjAKBgNVHRUEAwoBBDAYBgNVHRgEERgPMjAxNTAyMDcwMTA4MDBaMEIC +CQCF4C80Bu+WxhcNMTUwMjA3MDEwODAyWjAmMAoGA1UdFQQDCgEEMBgGA1UdGAQR +GA8yMDE1MDIwNzAxMDcwMFowQgIJAIdWbI4ErRreFw0xNTAyMDcwMTA3MDdaMCYw +CgYDVR0VBAMKAQQwGAYDVR0YBBEYDzIwMTUwMjA3MDEwNjAwWjBBAgkAtUQpLTey +hp8XDTEzMTIyNDAwNDUwNlowJTAJBgNVHRUEAgoAMBgGA1UdGAQRGA8yMDE0MDIw +MTIzNTU1MFowQgIJAMpeaX2ilH7BFw0xNTAyMDcwMTA2NTNaMCYwCgYDVR0VBAMK +AQQwGAYDVR0YBBEYDzIwMTUwMjA3MDEwNjAwWqAOMAwwCgYDVR0UBAMCAQ8wDQYJ +KoZIhvcNAQEFBQADggIBABUTNIxIswUIcEKCDyF4rQFtB9YLKv4jX5JuR3WAdh+k +R3cTDeDut34tvN9WMj9ukqXYcBMceqlVSjGEw2S5yCF9GFfZuwkBKoGw+yqX9obz +11GM4+mOGeJzPsWLEMhFjcl53OWIVhkcyko6uVPrQ88JlTJWrligBE8CYsIcDpdu +9RyPuo2lzvQ0/cS6FkENnVlp0ILFIV9YExdb/ot486XRmk4EjTwqawea58BwY4+k +0g9okPIilDzE7nScvBIW3S1WRY2WCRrLccfJ3x0oCPDbVYxseKJ/SPCmar8KvM5A +y7hAhOpQ4nZGATYXcvRyA0pPagKafIWpXpoQiu7kMn38Dlmaeqp3qL7sfLUjj/QJ +UVovISWkIQx9RTwx8CixCABJnLXYeiiXycsPc4rvcoxNqU9FdDwlK+kfU8tQkCm6 +QJI4o5vH4s1cVFcjBnhJWRmK3gARKltKkgkGVxFHedZJ3CziwGHPFA0gySZEzPNt +jC1g6auCROVTFQKoQ+nxreIF76ia0siWlYCyS022f4mOaBaR9lzSuNUH5YnF3h8u +ZO+lwLpGQ6NPocg3kEOHrlQklw4KMx3ZJha7G2nz5DWTMt4jTFGKU0iLabYkU+HR +IgKOdOCqWWCdFuXxOlneCIkagWZXWpPXBHMSBw8IPIyp9ts2o8dzGclErBWh96bz +-----END X509 CRL----- diff --git a/public/CA/CRL/NWW_Root_CA.crl b/public/CA/CRL/NWW_Root_CA.crl new file mode 100644 index 0000000..0ea7579 --- /dev/null +++ b/public/CA/CRL/NWW_Root_CA.crl @@ -0,0 +1,32 @@ +-----BEGIN X509 CRL----- +MIIFmzCCA4MCAQEwDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNVBAYTAkFVMQswCQYD +VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTldX +MRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24u +bG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdl +YiBDZXJ0aWZpY2F0ZRcNMTgwODA1MDEyODAwWhcNMTgxMDA0MDEyODAwWjCCAoww +PwIGIBUQJxYnFw0xNTEwMjcwNzQ0NTZaMCYwGAYDVR0YBBEYDzIwMTUxMDI3MDc0 +NDAwWjAKBgNVHRUEAwoBBDBBAghaYikTObwI4BcNMTUxMDI3MDcxNTAwWjAmMBgG +A1UdGAQRGA8yMDE1MTAyNzA3MTQwMFowCgYDVR0VBAMKAQQwQgIJAMXtJgEvbEgG +Fw0xNzEyMjEyMzQ2NDFaMCYwGAYDVR0YBBEYDzIwMTcxMjIxMjM0NjAwWjAKBgNV +HRUEAwoBBDBCAgkAxe0mAS9sSAcXDTE3MTIyMjAwMDUxMVowJjAYBgNVHRgEERgP +MjAxNzEyMjIwMDA1MDBaMAoGA1UdFQQDCgEEMEICCQDF7SYBL2xICBcNMTgwNDA0 +MDExMTExWjAmMBgGA1UdGAQRGA8yMDE4MDQwNDAxMTEwMFowCgYDVR0VBAMKAQQw +NgIJAMXtJgEvbEgJFw0xODA0MDMwNzU4MDdaMBowGAYDVR0YBBEYDzIwMTgwNDAz +MDc1ODAwWjBCAgkAxe0mAS9sSAoXDTE4MDEwNTA1MDczOVowJjAYBgNVHRgEERgP +MjAxODAxMDUwNTA3MDBaMAoGA1UdFQQDCgEEMDYCCQDF7SYBL2xIDRcNMTgwNDA0 +MDA1ODM4WjAaMBgGA1UdGAQRGA8yMDE4MDQwNDAwNTgwMFowQgIJAMXtJgEvbEgO +Fw0xODA0MDQwMTExMDBaMCYwGAYDVR0YBBEYDzIwMTgwNDA0MDExMDAwWjAKBgNV +HRUEAwoBBDBCAgkA1bayDE6HOc0XDTE1MTAyNzA3MTAwNlowJjAYBgNVHRgEERgP +MjAxNTEwMjcwNzEwMDBaMAoGA1UdFQQDCgEEoA4wDDAKBgNVHRQEAwIBDzANBgkq +hkiG9w0BAQsFAAOCAgEAqAPkorhG9ASJ85EebuhVSCQ2FVtceMvbzF7TW9cNcifk +pgsfHZOSHWXprmDmDv1KVbjeTIyYUufycyfF4u9g6DMGdH6N8ScV+PItUcyTAy21 +ZqHxdJxdYtaxcJlkHnrAhOLs4KhwTUAkdivZZUZKnFQHntmZA+hIkvDiVZQ3IP05 +frf+1UzOZX3MftQLGQtUZ5fM2JHzPwO07eUNjiD3nwcX/N8YcyrxHaZG7aTYUEEq +7QIw10ghRrUCZw8TnL5grQYJdmsA8aI152tI+eevjgdECSbt+6uQpnPa/Z0pyRug +ahtY0EJUrw/2VPvm4T8aHVTe/E/EkWccyiJFBs9Qe6VOs/uWx572O8q9eOzYOZoY +m2YmrDlvqBD5km45JrDfjS1mRRPAHeRyt5JIB9Jf2zFBJUU5SHB+KZP02NvoxEOK +/sRPKKZP/54dRhAgCUhAjw9knLjChWlL4RpLn6Vf08saL08Tfh5hbWMsnCGjesyf +Cf3aqisHc/5dxCqfKKtn/RjGrXSHsh/y+TtvYP9ssVQdCFc3qvVpxwhex1fms4Mp +THCm2JQlZMaMALPgoeaVyTX3K47/oBQaMh7DcN4Eq9j89OpUNHwhXU1bD5CWM2UY +BUu5+2wIAj/3Ifuo4JTcOnhCBwuF2sSATiRV7Y3QjgKRmqhuzMBUNRKw3Cc2Z48= +-----END X509 CRL----- diff --git a/public/CA/CRL/Pegasus_VPN_CA.crl b/public/CA/CRL/Pegasus_VPN_CA.crl new file mode 100644 index 0000000..5520248 --- /dev/null +++ b/public/CA/CRL/Pegasus_VPN_CA.crl @@ -0,0 +1,19 @@ +-----BEGIN X509 CRL----- +MIIC/TCB5gIBATANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCQVUxCzAJBgNV +BAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMRAwDgYDVQQLEwdQZWdh +c3VzMRcwFQYDVQQDDA5QZWdhc3VzX1ZQTl9DQTEoMCYGCSqGSIb3DQEJARYZaW50 +ZXJuYWxAbmV0d29ya2Vkd2ViLmNvbTEXMBUGA1UEDQwOUGVnYXN1c19WUE5fQ0EX +DTE1MTAzMTA1MTEwMFoXDTE1MTEzMDA1MTEwMFqgDjAMMAoGA1UdFAQDAgECMA0G +CSqGSIb3DQEBCwUAA4ICAQCxo2KoBQ+1IP+ZuiqG78QhjVRLepmxiHzGUw6gkzIz +kkCyNSc/V0ZfdaRtWYZ23A7WjNSvdQuwhKp5Nq8SlCVcH0ymb0nvifT4w7TOQxFf +0FpK76hYD1Ozx71/prI9q1QyRjD9yqMmxYObAQphrGJVZ8ljpKUYLOvxg6NMO8Ns +ZYLlryLYf0+MdID2WejW9KFgBSg/bi49UHxJw4hGnXx98IAVSbnqYmxejiEjwbLQ +5C8cgozEn9RUMSdWzL9d2IUOt9ppKfy7VgOH/2io0IMb28RxD/b3RdCCNNelSKFE +DJrSuOwhvP32u71CYN/6GEcg3yHif5d88yKnmPkC/iwr79oLe0dQh0SRsO037sUE +G53sA+9N69EtwqwXjPFjruns3ngtJye76gJksceI9JJB9Q5qfShCSqVviX5iCcMU +tNv5mYtS6yOIjUgPpvBOSuUPwsiegGE6Zgvz2EMgutaxnDdgbkvO/8gEy154kft0 +1l8W+/ueUEAZPTifoSMWr8Up6PFKAdCO46XSvWEuQ1NcZeWvq1EioBT1U2M65hB3 +bKtRFWUkCxQJWxye/eLw+SGGGwVpXy3P7sueUWiXFSmtAbfXuWej9LlMju5FUKXY +34K6RlI/GkPhwfWN5SAfYnX3qOF3IUiTAxchCQZ2Z6JR1dIEShHX4Ur4FdW45lXM +aw== +-----END X509 CRL----- diff --git a/public/CA/Earth_VPN_CA.crt b/public/CA/Earth_VPN_CA.crt new file mode 100644 index 0000000..f48d3ce --- /dev/null +++ b/public/CA/Earth_VPN_CA.crt @@ -0,0 +1,44 @@ +-----BEGIN CERTIFICATE----- +MIIHrTCCBZWgAwIBAgIJAIF057Inea3QMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD +VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx +DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B +CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T +GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx +MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH +EwJOQTEMMAoGA1UEChMDTldXMQ4wDAYDVQQLEwVFYXJ0aDEVMBMGA1UEAwwMRWFy +dGhfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3ZWIu +Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3H82oeWzt5ZBoyelJhBjp8WrjE5yrR9+ +/xn118D/WXGeLMPixXmjNe9Ik0tg824DBoc3/ZHOtt8Knk32LZZhF5BF1B5H8Xgg +zx46e23tufVzUWPt+tZjV35//T/PikYUZUdCTYbYZFOuR0VwOiJBtCu0TEwQDaLe +bT9YJmAiSACKRUAT5WJwmP8mxuwW0qL5gns3Sfldq1Fvqjwa/WZQfI1uvV0GeHdd +EWiH5sTe6wtIHjXUwV/YvCsDcqk3e/Jl77QgiYwduovx/jKRCNtpBVH9yA5wsdRk +cPhAEdF8SK/8Ti/8SOChYePmIlIpbqZSO5lxyGJB+JP6Lq5gFSLX2xkTx7Z+GrlG +hiq7++PyI5S9wOsxzb+yggiX9O09n8L39cQ8t6F48AXEZpdE8jdp+jbrLUhFJ33N +HFShms92VGmEL/Hp+o4jzLkKjj8JiZtQVEfTQWiCpU2Iy8SE2soFzx2XrGS4QNkG +5Qes39dfJtPzzugXgO9LjeRECfH1o5j5gr8MfV7S0Pa9KiamTRM+qCjyLM6FgboY +XtqvGNhjZPspZCL2BePNvXMOuWQY80W2NYwpcmtQWd9NXRTOMCkBSYbaTX2gny0j +sAG8OlKz/oNjEFhuS9DYhaB2d9i/7Ye8zFGNxhX/zSXrwSFYB7ew9unACk+UMW4m +7oX3ZkaBx50CAwEAAaOCAcwwggHIMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FHofT+JsVUY8oAVJR3ijj0MxpFq8MIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 +h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ +BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL +TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l +dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh +dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQwYDVR0fBDwwOjA4oDagNIYyaHR0 +cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML0VhcnRoX1ZQTl9DQS5jcmww +SQYIKwYBBQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0 +aW5nLmNvbS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0G +CSqGSIb3DQEBCwUAA4ICAQA/Esj2AP0oM51YYuPhE1Mmknkx6Xxnn49lZim9BJEr +PMe5+M1wxlXnMklHl0AEyf59W1V6PCvlONonsOOZg/Dncm5w4AYdjeUSUxGMr6lw +kVViKkPApv1NBzw3kmJDL0CazTR3K+nl4mB9BTbOSnvGX7QUcZZ92mDxqBAiTaRb +rk8OzDW4+Lla51hSsBYuQrmRtx1jT/OZxLL6HDfM53HTLMvbFMndC2pnZL78owtp +q/V9zyyWC2fjDFGeMAv/7/0BuwfP3Ovir5OIv7C8YMrfcshgZhdt5E4mKX02TENT +x0tfNV/T/TeQGjdX85L4uYnViAA+rAlVRjE8Y0rZInnhDahI5ptpUUjSUvF0D3k1 +ZTXvCqvev4As7k0ci4mCO15LQLcQWOrirzARSR4l1OFWmlxd3zy8CBgjN8RgV0r+ +qPp1DWO/5hqKgVoBUKKAWX7cVu1FZYlxjiKqYsZHkwq5vy7ibHCSipufCWCVdU1X +dkhXhbEaS4FIA1epQNhH+GPyMxVU5uTTieSx0uvEbKvJ9UmLIGQLxBsWSgfmUKjc +xST6RlvTmKywV3ansfmYw84IxSZylpm8gT8+r5iod7lHXre1f+hESmE4lQvQ51eM +f3RjNf5W+uGtaPTGzZRN+b//kGs1pmn6Mtyr94DQCHp3LJCAVoHpFqy8PqjdlLNo +Yg== +-----END CERTIFICATE----- diff --git a/public/CA/NFCCA.crt b/public/CA/NFCCA.crt new file mode 100644 index 0000000..5121531 --- /dev/null +++ b/public/CA/NFCCA.crt @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +MIIGFjCCBP6gAwIBAgIIB+I42RMLhBgwDQYJKoZIhvcNAQEFBQAwgdgxCzAJBgNV +BAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3Bl +Y2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRQwEgYDVQQLEwtOV1cgUm9v +dCBDQTEUMBIGA1UEAxMLTldXIFJvb3QgQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0 +aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtl +ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTMxMjIzMDAwMDAwWhcNMTgxMjIyMjM1OTU5 +WjCB2DELMAkGA1UEBhMCQVUxFjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNV +BAcTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNV +BAsTC05XVyBSb290IENBMRQwEgYDVQQDEwtORkMgUm9vdCBDQTExMC8GCSqGSIb3 +DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UE +DRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBALrz75sW0VR2qqi6UAtk2z/0GpLxlPsgGawLePfNZXvdYHcB +1JzPpAyCZ+PF4VIHz17tmdQFyN+msd2W6Op8SI5CW3MDHwA5HoAGcm6vx+xp95UX +96+fbqthL3UPNuOOW3EWXEb3DsF2wtrNXdhq4nyOMGrioe0fQvo8ij7Qg/eiFJSu +Sg3zPssa5AjsJ3P4px9kQusm2tkN9oH/1AZmE3CJXkVzqzEPbmnUzt/LD2I4Hd86 +KweNsSiBeZwrxWN7nQUla+rWE7Al+orLLnQbj14uz5Oeh+y2VnVmXxec23mebUcl +Pxy9GhxnKMF2wp6//nJs/soJKt/KEdWaMU4oW1m/rkJejjVQSvBvO89hL+4hi1iK +aoxXRnNnX6V5naXPAjlOXzDqZSnmDPk31gWL7uy7eeNY/+dCYKNk/ikstGAhfn0y +k70tUAguBf3zAewRL8JM05+HrYGdhCv/qFb+VrZEf0BgnSvq4XpVszNYJY+JePbW +smOw0/569aptCHaGtpuuvDO5F5GmtvN10NWYXRJx98txAT4SnfDHuxp/kbqlgXQF +Q+I38vVYRWfDOoakxZYESvGNlXZ12aY9RiMKp4191Los9yH16TXoERvg8Q1a1QEQ +l+fwM1iTg3RJ1WowCm6QvsU5NqVjrx0GzXCTxkd9OCjyiVwl64X9sDjYZhe3AgMB +AAGjgeEwgd4wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwQAYDVR0f +BDkwNzA1oDOgMYYvaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05X +V1Jvb3RDQS5jcmwwRwYIKwYBBQUHAQEEOzA5MDcGCCsGAQUFBzAChitodHRwOi8v +bm9mdXNzY29tcHV0aW5nLmNvbS9DQS9OV1dSb290Q0EuY3J0MB0GA1UdDgQWBBR6 +prE+wkxZU+lAqwU04QYbfTVQxjARBglghkgBhvhCAQEEBAMCBkAwDQYJKoZIhvcN +AQEFBQADggEBABV0Uw7kioLo/bUf9Bkcjq08v6zAvnjfp22u+P3USDWvjdlyBM1F +J39TOf2tAvZJ+33HzDanNL1oDw57IVw7QqIasLJRINa3gojUml6SaOT/DF0HpcJO +LN1e1x3oaQHHw5cljCFue4PRdja2z7EgsPY2qZdIdnN5CuaUI29qke8MD4cX0Ezu +KtCzkL8TWsc+QKZYodNjSwviOBIEOar1ayGAGfarqszDKHk3jG8W390BJBVtpUgL +zOyyv4SmKu+Zu090nAB91ThYYA3vnPV3Ar+tAKl0taSWNQh55jrwSA9BhrFGaRxb +huJWadC1O7ILrs72kIExzELUSDcqOhc1Nuk= +-----END CERTIFICATE----- diff --git a/public/CA/NFC_Root_CA.crt b/public/CA/NFC_Root_CA.crt new file mode 100644 index 0000000..6f718c7 --- /dev/null +++ b/public/CA/NFC_Root_CA.crt @@ -0,0 +1,43 @@ +-----BEGIN CERTIFICATE----- +MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD +VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx +DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B +CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T +GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx +MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH +EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S +b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu +Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv +GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk +CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R +ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd +Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7 +gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu +mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8 +i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn +Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA +NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo +A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z +KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 +h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ +BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL +TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l +dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh +dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0 +cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ +BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp +bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ +KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo +NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op +bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN +/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE +QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8 +HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va +E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf +Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n +2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds +CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4 +UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu +-----END CERTIFICATE----- diff --git a/public/CA/NWWRootCA.crt b/public/CA/NWWRootCA.crt new file mode 100644 index 0000000..34ab426 --- /dev/null +++ b/public/CA/NWWRootCA.crt @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE3TCCA8WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCB2DELMAkGA1UEBhMCQVUx +FjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAcTDU5vdCBTcGVjaWZpZWQx +FjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNVBAsTC05XVyBSb290IENBMRQw +EgYDVQQDEwtOV1cgUm9vdCBDQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9j +a3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBD +ZXJ0aWZpY2F0ZTAeFw0xMzEyMjMwNTA1MDBaFw0yMzEyMjMwNTA1MDBaMIHYMQsw +CQYDVQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90 +IFNwZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjEUMBIGA1UECxMLTldX +IFJvb3QgQ0ExFDASBgNVBAMTC05XVyBSb290IENBMTEwLwYJKoZIhvcNAQkBFiJq +b25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3 +b3JrZWQgV2ViIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAyQqO2ehMgJt7/smhusiPQn183w//y9ZE6IZ8ylVsQ45HEI8svadYbKay +Vj4XzOl6h91asi3mGKllRq1fj7/Tekid641ew1Emt0yMbMbxCj7NW7jM3UeTNP4+ +0OtNjXKGI6A2/ciS4lQoSC7TQc37L5tr3qN6TzbtxLKfvyOIPczDbDBBtfAicw70 +71ICWjeMGJ/MASAO0RR+c77TcNFqNPkzMztyJpucQy4D+iGMDDfNfltcjd+NA5Y7 +YSUyx4hl05IIjY2FlmBwC1nLTYtEV4hWN+lDM8W0A736zo+kiP/SbryqYVUgJZoC +aJV38NRB3ksNDHELwbJAE5WDdP8KlwIDAQABo4GvMIGsMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgEGMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9ub2Z1 +c3Njb21wdXRpbmcuY29tL0NBL0NSTC9OV1dSb290Q0EuY3JsMEcGCCsGAQUFBwEB +BDswOTA3BggrBgEFBQcwAoYraHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0Ev +TldXUm9vdENBLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAL1+9V99RaFuqyzb20E9/ +DKoByMK2Q+1Mepw7CdbEQbnOtj4CiWnNA4Nw2rMOcV1dsd0WoExlW/bBHXWqS33x +x/XCODiJtmVMDqPU01DSQy74y7cQxOh2qetvsDfbdVHQryeMSZbEvvlranXkmZOB +/VgrXbrFBC8rJ5LxY+GdC93qUpyhZ/ON9iWMzq5b1nkqLSy4b8OR+gHINBWAu4Rj +fByKj3QerFf+272ADRndJXZRf376TY5DSFdolyvPVO9/S+ussnlpZP10dtlLsJ5H +rEfq+VCmSwC2YTkJNUTQvq2iOlgAQUl5UDkd2LvthO3NsZaRgVObLudfRQzV5UHO +Pg== +-----END CERTIFICATE----- diff --git a/public/CA/NWWVPNCA.crt b/public/CA/NWWVPNCA.crt new file mode 100644 index 0000000..3c53c85 --- /dev/null +++ b/public/CA/NWWVPNCA.crt @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +MIIGADCCBOigAwIBAgIJAOdfyaftuP41MA0GCSqGSIb3DQEBBQUAMIHYMQswCQYD +VQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90IFNw +ZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjEUMBIGA1UECxMLTldXIFJv +b3QgQ0ExFDASBgNVBAMTC05XVyBSb290IENBMTEwLwYJKoZIhvcNAQkBFiJqb25h +dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr +ZWQgV2ViIENlcnRpZmljYXRlMB4XDTEzMTIyMzAwMDAwMFoXDTE4MTIyMjIzNTk1 +OVowgdYxCzAJBgNVBAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYD +VQQHEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRMwEQYD +VQQLEwpOV1cgVlBOIENBMRMwEQYDVQQDEwpOV1cgVlBOIENBMTEwLwYJKoZIhvcN +AQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQN +ExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkqhkiG9w0BAQEFAAOC +Ag8AMIICCgKCAgEAwZz2VgcS6fxoPnwUV3RjCUQbtSsZA9tFN9OuB60lQ82g70py +lBiX1oM46tCMADtogri4N1QVNvqpn2ibpfmSof4+0u5OLU0TD8t50MaVit2r74g0 +lHFxPungIFaXcaONQzdXkyvUOkuOQyLZWsOZT7rvt23ojZWeHyqZYeLjHRLeM8Pd +Hht+S/07PMiEirt5ah61qEr5tm1Q15BS9RMMhqyd0tDacX4mn/cKPwiTx8gwVh2I +hw+sEco6pZezmPO6pZjYboz1SviWGNVlHa08+hn+MvbSBqiUVy4Ebvg0YBiobudH +6mW86n6k0Fbhl/Nx80J6w6kY12GKoOmLWH3F4xW7+t12knGc/pBwA6A0bjS0VxUN +OXxHhvA7BF04QtG80l4HfZqMKVZzotj2pL7WG64DGARMjRO4U5+o7Slry0R+iI47 +wsvkGvkq5MMdB7AEeSFH4+ykowyYAmL1lqjW+3W7NKAWIvRmGn6Z4pbKvvo0nS7J +dMcrpu57MBwJ88ExnLhLfgq0K+8hBBf8OKuYferXMRZmrcQGZIG46rxYkS4fTxiP +kk0o6VOqg3YcgH5euLk83v0xPy4pb1YE3s1bfe23bq5NEpEOJynqMCk0T8dUGybG +SbuxfXAEZuVxr33WcmlSokDz9H/fk30I6Rnb3mV5C8ab8LUtuXt55333musCAwEA +AaOBzDCByTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA/BgNVHR8E +ODA2MDSgMqAwhi5odHRwOi8vbm9mdXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldX +VlBOQ0EuY3JsMEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAoYqaHR0cDovL25v +ZnVzc2NvbXB1dGluZy5jb20vQ0EvTldXVlBOQ0EuY3J0MB0GA1UdDgQWBBS6auHS +OpuvAE/jfGPgdfc3+cLFGDANBgkqhkiG9w0BAQUFAAOCAQEAt+TemCvfM7MwTQ9G +EroZKi5Pr40UEvs0J+jZ8N/NtpOStZUDeH3gUjWZhr+iMKJVu/GtAX/IWP6IBbBo +wH8xJCuWoZV6H2MdKc8YEoaEiwZ9N3THrYqOrqDO7nw3ORNZ4O+sEd3u/IRa63Ha +uXmBMEdn+Llinpn6IKJMBCP1nYDfQ4A57O5G+KgBw0Hpx1BZQaluKFW1phTx2feZ +lbaXY2TzWtCtdUciMiFbaeTvBLzKpThdOXwrzmw06Y4ZfR2Lp8JIlb6NO6mQzooV +liiufiQGSjvl+y+jPe6ml/f6uFYVBenP1MhLneCZQC+xvReXpG1L0MCMwqz4Ixhe +y2LnYw== +-----END CERTIFICATE----- diff --git a/public/CA/NWW_Root_CA.crt b/public/CA/NWW_Root_CA.crt new file mode 100644 index 0000000..6ed8a02 --- /dev/null +++ b/public/CA/NWW_Root_CA.crt @@ -0,0 +1,43 @@ +-----BEGIN CERTIFICATE----- +MIIHpTCCBY2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMCQVUx +CzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQL +EwNOV1cxFDASBgNVBAMMC05XV19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25h +dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr +ZWQgV2ViIENlcnRpZmljYXRlMB4XDTE3MTIyMTAwMDAwMFoXDTI3MTIyMDIzNTk1 +OVowgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAK +BgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTEx +MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv +bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBANNh/YQ88bqyR2569AwMnqe+9VjeUoFQcGgr +JjcS76lZaAERnbl49PJM6X9xcFBQoCD3S1WnNXL26ZtA+PKdfvZOL8GIkwZQrXNB +Ts2f4VP1dahuxuHYlmlwlpdT84JKZlDloUrDOgx0D707Z+ybUrTFjqaQjp/ZfybQ +QLiYfK/6v7K7rOh8WyeWWunDo8uYlZWmtmzAQU9IQimYWepZ4/O+yfWnUVRGvYMD +daALrNaj5MO41J13Y5sXDdl++yTCbujJ+xTDHKfjoJ+KpEuLa8VzWjJYAjm+TSXK +gWObOxpnrb4sW2bB2pPtwQoOKd3tXYW2bRKJHGt2pVzgyGUjZ1yGKFS04+cg9OpP +ePFtS4aTKVTMIe7BHwPA1fhu2efqmfP0vSY0EmRHuk9GIqo1r5EiC94xOcAuLkPG +RquMQr+moD27JrhhlF9vw/Z9pr6gZ+hUDYGbE0913F1mjdtYp1lBmaLysLwpI0lH +PUZdFdejCbnvPfH9EVxNRgbM5J/yzfRB//QRnufpjC2OgB6zTnifsYIOOSYHYgCK +4DLrin74j4YiUGm49wuTwdqk52B8bkDzx4cWwIpJWYIeQC2xMrR/RvdrDMxt1Frg +k5es0NHMWAzd2C2PRS2fmvuUdq2+QZRe721TvoeFLMI05PnUrxOkz/din8BNWtsN +AoBCi3FdAgMBAAGjggHGMIIBwjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRI +6WaWbdVLxOTffYdPlqd7zAw+7TCB3QYDVR0jBIHVMIHSgBRI6WaWbdVLxOTffYdP +lqd7zAw+7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYD +VQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05X +V19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3 +b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRl +ggEBMA4GA1UdDwEB/wQEAwIBBjBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vbm9m +dXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldXX1Jvb3RfQ0EuY3JsMEkGCCsGAQUF +BwEBBD0wOzA5BggrBgEFBQcwAoYtaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20v +Q0EvTldXX1Jvb3RfQ0EuY3J0MBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0B +AQsFAAOCAgEARpj46yWBnbJIfqh7V9c1AWZmbzqogJynp5AqyC2e8Rp59dpPKJ60 +BC2WVUMsCHqyhl6oZwmn2Ejud+iodGo4IwdgDneFvQQAiF7TVTBnBRHnup3rLtTX +zvqIBPyqBmrvZSjSfG0mStb3YWS41yj9bhsqy1qRTdXS+Ghc4I1DcOWu62NbhbP/ +UHPUEwCyPxEWLtxk0u8N8Hqmlr3qHHM53cKaOUUIn6VMtq2S0o39xWt7QuHWe3Aa +COQYaAVQ60f9cZUmw7h31d3oen7nrlaaDAp7i1e4HuTb8+PzetoGjJ8xCt4cbnp0 +ThQFdVuaLszSiHpmsKPvdazIVjhvT7CTM5EydsDHZFA6cMmWjYYm5f9MXbiCSebC +2q+2W2vO92yd/8JE3JCRc8A2Mi4RSw9SziN/MCvueorIFJXfawz3rARgk5KXKPNj +DBHcxxaQOTCJHLblGsv+9S/ANnucOihQRPWPGKGr80Yy5wQ8TKnuElvzrOjyR2Cj +HGqSX2ar1GnFtmDsfamnJ0kb+2Sbamt3slAxUM/Qc+SIWepVtSNb8IppWPCxmPOd +QyUMRayfkkc2qdo3xyUV1zE/alMPK6k0epyZ0+lyTo+sVpyzVq/D1wS63pUXiK/f +gB5/XW5AC1ngeN3DBlOc/R5mscyv4o4cHOauxMKjldGgGhqI0QnRSi4= +-----END CERTIFICATE----- diff --git a/public/CA/Pegasus_VPN_CA.crt b/public/CA/Pegasus_VPN_CA.crt new file mode 100644 index 0000000..1d098b9 --- /dev/null +++ b/public/CA/Pegasus_VPN_CA.crt @@ -0,0 +1,43 @@ +-----BEGIN CERTIFICATE----- +MIIHpzCCBY+gAwIBAgIINsj7HlzAfYswDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNV +BAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEM +MAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJ +ARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZ +TmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTAeFw0xNTEwMjcwMDAwMDBaFw0yMDEw +MjYyMzU5NTlaMIGjMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcT +Ak5BMQwwCgYDVQQKEwNOV1cxEDAOBgNVBAsTB1BlZ2FzdXMxFzAVBgNVBAMMDlBl +Z2FzdXNfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3 +ZWIuY29tMRcwFQYDVQQNDA5QZWdhc3VzX1ZQTl9DQTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBAMjkj6nShoH9YfKCa8MbQFV0dqkoHuuv11W7IcvL4isR +NrLshe8zlB3v9cGsaWot9zu+tbcX71SW+2vdlCTuNerdlOQIiMntjkbHPG8iwjZu +WHpu/DqZv9BJjfIuCWWb3eTw6DuvQTo3Lwauh7z/Vp8IKPmoloAVnj8rZizVqWxV +cJwPD3vKJAKtbtZkfC7dgWFPRWTtX26DVV/EmhICinE/KmkfckLxKdkpuyejiHz8 +uduweS9Wfj21mgsWKeSYkzONGr04YmYxCLWGqyqwQ+ZsNRJWdRFBHKwKwH3k01I8 +Ce6/tpNZYQLYykUHTCpjHW4UuvkXFo2SK9ilJ5bUze5qedYrFMXsGJoWgw+xCYtZ +QkFQmFNXFk1oplVwK/8Jnn3mfEpsbtQBW4RAyOTETRlWpe+n+/BgZNPdncODXWN0 +Gvtg4guxftdNesXd+6e4R7tC2GX8sqxOzNji64KxAoiMPK0qwhyFKegD7iuMC/LC +D2KhFNxjRHkJIe1MfvPAZPygiQYPbNatVLzRSaS8Uj132IUfqqCPyrKNg/rJb6Yh +Ovlf/jEMUaEzH9xUmlOEiKf2yyXrw6vTWhtkYCNCyronLblFc+NiwSzCxcINMlX+ +hj8zg49wQC/80QjwdHbz2KP9sLzFtuURFjRdpfYFaiI7iWapo+eHYq6OKq4nH1Z1 +AgMBAAGjggHOMIIByjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRBbMbXhzlI +dbRsB2xNIPbP2kCbETCB4gYDVR0jBIHaMIHXgBRI6WaWbdVLxOTffYdPlqd7zAw+ +7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO +QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290 +X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3 +ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlggYgFRAn +FiYwDgYDVR0PAQH/BAQDAgEGMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9ub2Z1 +c3Njb21wdXRpbmcuY29tL0NBL0NSTC9QZWdhc3VzX1ZQTl9DQS5jcmwwSQYIKwYB +BQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0aW5nLmNv +bS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3 +DQEBCwUAA4ICAQCGuevjkXLiEC03sX0Iu1oV8IgrRv76agQseJs/s+xBJ2NznjT8 +xsZX7QmpAJ1tdOtiwQwggF04KHj6rlt0PbA2MHjz1uB148pep8DpF/z+iCW8exA8 +iIBjRK9A339Q8gM8jJRBoz6I3Ipwkx+06+DWs73fwW2Y1PgHg445GB1ToN3cKS54 +YomZUA1yagdBiDXriPReFQPBTk18dyA8ZIoVse1J4HgGr5i+5for6IK1C7w2UoTh +55sEP44VskYpAZCaCd531OVgruw+SixhOJbHS/j/smN1WinLEptBKi7LY+nLJtiE +BEDiexeXwlfZWBTSs34yDIn8JBtOLYd1Ur/kB/j4Wbs7xT9RJ1VhTDFZcOB3rREj +comhcuWsbQegdt9M0DWZdriZzgzGQBm5dqFnp6FAG4tOjAGr24TP6tsq9sbS1Eyk +5snwE70mTQ9bCDFU4Re+bVfAIFDfY9HF822ZgMdy1BQw/S5a2YoRMZtYaZFGYidp +VNk/ICnl6ELlg6ZlPAiAn2PaBICTtzlt/TpznAFEvxlvc7tsc0HsDKVT0n+T8wv3 +yp0rbgrQrJlI+Z9nl+g3ZHDc9mQXbcIWBkUFUoIsTUwdGExXypWDIlQ86pqyLFnl +42BzmL9mpf862aHybxCBOEre2uBUhFGWTTjNm7kjItM5SGQGUq7EAd1p6w== +-----END CERTIFICATE----- diff --git a/public/CA/certs/236498e823d880414b763cd9cc813ef1fceecbf8.crt b/public/CA/certs/236498e823d880414b763cd9cc813ef1fceecbf8.crt new file mode 100644 index 0000000..bcaab0f --- /dev/null +++ b/public/CA/certs/236498e823d880414b763cd9cc813ef1fceecbf8.crt @@ -0,0 +1,44 @@ +-----BEGIN CERTIFICATE----- +MIIHrzCCBZegAwIBAgIGIBUQJxYmMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYDVQQG +EwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAK +BgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEW +ImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5l +dHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjUxMDI2 +MjM1OTU5WjCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO +QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290 +X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3 +ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA02H9hDzxurJHbnr0DAyep771WN5S +gVBwaCsmNxLvqVloARGduXj08kzpf3FwUFCgIPdLVac1cvbpm0D48p1+9k4vwYiT +BlCtc0FOzZ/hU/V1qG7G4diWaXCWl1PzgkpmUOWhSsM6DHQPvTtn7JtStMWOppCO +n9l/JtBAuJh8r/q/srus6HxbJ5Za6cOjy5iVlaa2bMBBT0hCKZhZ6lnj877J9adR +VEa9gwN1oAus1qPkw7jUnXdjmxcN2X77JMJu6Mn7FMMcp+Ogn4qkS4trxXNaMlgC +Ob5NJcqBY5s7GmetvixbZsHak+3BCg4p3e1dhbZtEokca3alXODIZSNnXIYoVLTj +5yD06k948W1LhpMpVMwh7sEfA8DV+G7Z5+qZ8/S9JjQSZEe6T0YiqjWvkSIL3jE5 +wC4uQ8ZGq4xCv6agPbsmuGGUX2/D9n2mvqBn6FQNgZsTT3XcXWaN21inWUGZovKw +vCkjSUc9Rl0V16MJue898f0RXE1GBszkn/LN9EH/9BGe5+mMLY6AHrNOeJ+xgg45 +JgdiAIrgMuuKfviPhiJQabj3C5PB2qTnYHxuQPPHhxbAiklZgh5ALbEytH9G92sM +zG3UWuCTl6zQ0cxYDN3YLY9FLZ+a+5R2rb5BlF7vbVO+h4UswjTk+dSvE6TP92Kf +wE1a2w0CgEKLcV0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFEjpZpZt1UvE5N99h0+Wp3vMDD7tMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE +5N99h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkEx +CzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UE +AwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29k +QG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlm +aWNhdGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQYwQgYDVR0fBDswOTA3oDWgM4Yx +aHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05XV19Sb290X0NBLmNy +bDBJBggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21w +dXRpbmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCAAcw +DQYJKoZIhvcNAQELBQADggIBAEp6g8NTXc89vngaI6Hu3FcLcsYwfcC3UvqUPCXS +W7qqc8GqR0p+n6FZWrMyAGVSjT/CXPZH6GZoTgkJK9g46YcWc1LhUIwnzj7dl3Gb +FAU1VRnc2PNYI2VxUbDLjAzxDPO5q93L1F/N4JYgamCCRDYqcUcg9uUrDxS9fz0G +JZaKDtmxelAb/TOo9jfRYzXmdCdzaZUi838UwfLYDoovBn+CTpWeKg+qs36ViK4H +qMRaHbPBAappJoxzWOQq9CBv9HGZ7GYpMrtE9Cwg0RyJyH6CHDTum6A3O9oa7Buu +zh36WAl1tXbJ/waW5RkS7/SIosWzi+SbASEeOY3X5jnvjFkSVZlQbNDfOzQkDAMW +3JXfBBWG0fCXFSBJxPpVUV4dSkhZFyFZUDmKTnbqyM10DFEh+MFpEIOShXDoqbdx +1hvaBlBzgbi46xQPRptdsw+Eo6LiYSBUJIuSB7WBzNxpcIqZDiNZgXC4useuBdOm +QEGT3KPPpRfhneEz5f7v4e8YGHbbkvv/F7OcHXNX3tQ8T7u7d8cCsiGDoFtpEISQ +qs68fxeGNUdnA13INl5G5iGkXlVLh+hiTdlObFO2lqHXzv8RL3+ZtSkzbsVEC1CK +p4AlmeUn6vRoUvLtrm5REF7GVKB1NjyKJV8JP+DGyoiR9JUVmsqvFj5eCejANGEs +Nwdl +-----END CERTIFICATE----- diff --git a/public/CA/certs/9c7f3ab4d51614749a1d1171a4433fc000499922.crt b/public/CA/certs/9c7f3ab4d51614749a1d1171a4433fc000499922.crt new file mode 100644 index 0000000..34ab426 --- /dev/null +++ b/public/CA/certs/9c7f3ab4d51614749a1d1171a4433fc000499922.crt @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE3TCCA8WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCB2DELMAkGA1UEBhMCQVUx +FjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAcTDU5vdCBTcGVjaWZpZWQx +FjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNVBAsTC05XVyBSb290IENBMRQw +EgYDVQQDEwtOV1cgUm9vdCBDQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9j +a3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBD +ZXJ0aWZpY2F0ZTAeFw0xMzEyMjMwNTA1MDBaFw0yMzEyMjMwNTA1MDBaMIHYMQsw +CQYDVQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90 +IFNwZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjEUMBIGA1UECxMLTldX +IFJvb3QgQ0ExFDASBgNVBAMTC05XVyBSb290IENBMTEwLwYJKoZIhvcNAQkBFiJq +b25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3 +b3JrZWQgV2ViIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAyQqO2ehMgJt7/smhusiPQn183w//y9ZE6IZ8ylVsQ45HEI8svadYbKay +Vj4XzOl6h91asi3mGKllRq1fj7/Tekid641ew1Emt0yMbMbxCj7NW7jM3UeTNP4+ +0OtNjXKGI6A2/ciS4lQoSC7TQc37L5tr3qN6TzbtxLKfvyOIPczDbDBBtfAicw70 +71ICWjeMGJ/MASAO0RR+c77TcNFqNPkzMztyJpucQy4D+iGMDDfNfltcjd+NA5Y7 +YSUyx4hl05IIjY2FlmBwC1nLTYtEV4hWN+lDM8W0A736zo+kiP/SbryqYVUgJZoC +aJV38NRB3ksNDHELwbJAE5WDdP8KlwIDAQABo4GvMIGsMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgEGMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9ub2Z1 +c3Njb21wdXRpbmcuY29tL0NBL0NSTC9OV1dSb290Q0EuY3JsMEcGCCsGAQUFBwEB +BDswOTA3BggrBgEFBQcwAoYraHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0Ev +TldXUm9vdENBLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAL1+9V99RaFuqyzb20E9/ +DKoByMK2Q+1Mepw7CdbEQbnOtj4CiWnNA4Nw2rMOcV1dsd0WoExlW/bBHXWqS33x +x/XCODiJtmVMDqPU01DSQy74y7cQxOh2qetvsDfbdVHQryeMSZbEvvlranXkmZOB +/VgrXbrFBC8rJ5LxY+GdC93qUpyhZ/ON9iWMzq5b1nkqLSy4b8OR+gHINBWAu4Rj +fByKj3QerFf+272ADRndJXZRf376TY5DSFdolyvPVO9/S+ussnlpZP10dtlLsJ5H +rEfq+VCmSwC2YTkJNUTQvq2iOlgAQUl5UDkd2LvthO3NsZaRgVObLudfRQzV5UHO +Pg== +-----END CERTIFICATE----- diff --git a/public/CA/certs/A9B29700FF9E229EA866C1F718E2ED73DE5FC38E.crt b/public/CA/certs/A9B29700FF9E229EA866C1F718E2ED73DE5FC38E.crt new file mode 100644 index 0000000..e882d8a --- /dev/null +++ b/public/CA/certs/A9B29700FF9E229EA866C1F718E2ED73DE5FC38E.crt @@ -0,0 +1,127 @@ +-----BEGIN CERTIFICATE----- +MIIHDTCCBPWgAwIBAgIJAMTrJAQHdlFyMA0GCSqGSIb3DQEBCwUAMIGqMQswCQYD +VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx +DDAKBgNVBAsTA05GQzEUMBIGA1UEAwwLTkZDX1Jvb3RfQ0ExKzApBgkqhkiG9w0B +CQEWHGhlbHBkZXNrQG5vZnVzc2NvbXB1dGluZy5jb20xIjAgBgNVBA0TGU5ldHdv +cmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTYwMTA5MDAzNjAwWhcNMTgwMTA5MDAz +NjAwWjCBxjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEM +MAoGA1UEChMDTkZDMRAwDgYDVQQLEwdXZWJzaXRlMRwwGgYDVQQDExNub2Z1c3Nj +b21wdXRpbmcuY29tMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21w +dXRpbmcuY29tMTIwMAYDVQQNEylObyBGdXNzIENvbXB1dGluZyBXZWJzaXRlIFNT +TCBDZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAw +LqkN8ck9UoYApC1yNYXmq3kydkb8JwmbzbEZ7H6ZBffVzx6D7lBiyLwzS5nClYpM +F89q/D9q0x2k0oVckpNA8CqDjH69CojBtCAbTDM/tHBjrKir3pyg66rgCn5PIAJF +TEWTilLyDxXewiD6rNoxYChVvQYWjV3eV2IcnmwU6Yv9s5HvNzu2iMbJTxfFyeE0 +vgkRLBkqTBpYiTnc4m9OgPYJB7f4drQ0cibZ7ySDBlDvQM792PLtBokTAikQ+Uu6 +UkOpBVaeP/mnbF3WogL3ntjcXpX4JieMG2YAaKb3RynqZeX+oUvgz9K5hOjDgpGp +hswm8w677iAah1kaSYkCAwEAAaOCAhYwggISMAkGA1UdEwQCMAAwHQYDVR0OBBYE +FPOkMiFouKGtFmcsI4HvmWydR/hEMIHlBgNVHSMEgd0wgdqAFMcOta68Bn/QtEwc +LCCyoJvOSmSNoYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ +BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL +TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l +dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh +dGWCCQDF7SYBL2xH+zALBgNVHQ8EBAMCA+gwEwYDVR0lBAwwCgYIKwYBBQUHAwEw +OgYDVR0RBDMwMYIaZGVwbG95Lm5vZnVzc2NvbXB1dGluZy5jb22CE25vZnVzc2Nv +bXB1dGluZy5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL25vZnVzc2NvbXB1 +dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJBggrBgEFBQcBAQQ9MDsw +OQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL05GQ19S +b290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJKoZIhvcNAQELBQADggIB +AEC5mlLoGmAvFEf6dQ0yR+W/YPrW2qmZfIEtcfGq0u4Ik0W2pgBbHiXI4hhXLx3F +fMxwzFI69ab2qWhl37VrwViLtPDLp7f3nJbN+cURJfbYTXbt5ktqxAq5JpUO8caL +hJpJLuslcKCzb9Vpw6FbojLhWu44v0gcYiPemROrwbcTtaDo1qRHpxHN6am/GnY6 ++hZBtQV0STRHw+BESVAyjmuurMBGCTKIZ5SZ2oGkqWrGoNgRsIN1e1nE5rsJDHG0 +7mPMRfSa7Ll3B5tYXZ7M3H2MWDWtOg2AKrB6U1WoA7cEuHg8lV8PFpIvfjkqu6DJ +wx4X1NUBi8D5x/VCGpopvyZBSFkqeQTEZ+vQ3NfC1pOw6f8iwhdJGBqQeCY8AWFU +XKljEjSm8zleCsSLa24tOL+1WvcAZqjtoeN/E2VYMmHi2UdyIFFiZz3P2M5hL/dp +PgokHF0d/LuoEmdFv9ki5fj61VrldUsX8eg0CKgd+BiwobjlJFmPRKJX2d9ZE+rU +rJT8uHehioXmW1NK43QiBCgd3H54IpDl9HByNpF343sjvGX0Y0a+6D6pa1BJhVPw +9vLCeSKSUuI6XDtLGhGpkc5c4m6pChITzjCPQld/LvbxnQ6mhTtylBy8edixDRld +0bPU2pK43UcWEWQwOQG53Te5XVBmQ312WRuwp7U8Sfi0 +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD +VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx +DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B +CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T +GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx +MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH +EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S +b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu +Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv +GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk +CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R +ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd +Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7 +gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu +mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8 +i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn +Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA +NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo +A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z +KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 +h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ +BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL +TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l +dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh +dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0 +cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ +BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp +bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ +KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo +NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op +bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN +/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE +QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8 +HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va +E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf +Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n +2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds +CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4 +UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIHrzCCBZegAwIBAgIGIBUQJxYmMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYDVQQG +EwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAK +BgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEW +ImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5l +dHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjUxMDI2 +MjM1OTU5WjCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO +QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290 +X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3 +ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA02H9hDzxurJHbnr0DAyep771WN5S +gVBwaCsmNxLvqVloARGduXj08kzpf3FwUFCgIPdLVac1cvbpm0D48p1+9k4vwYiT +BlCtc0FOzZ/hU/V1qG7G4diWaXCWl1PzgkpmUOWhSsM6DHQPvTtn7JtStMWOppCO +n9l/JtBAuJh8r/q/srus6HxbJ5Za6cOjy5iVlaa2bMBBT0hCKZhZ6lnj877J9adR +VEa9gwN1oAus1qPkw7jUnXdjmxcN2X77JMJu6Mn7FMMcp+Ogn4qkS4trxXNaMlgC +Ob5NJcqBY5s7GmetvixbZsHak+3BCg4p3e1dhbZtEokca3alXODIZSNnXIYoVLTj +5yD06k948W1LhpMpVMwh7sEfA8DV+G7Z5+qZ8/S9JjQSZEe6T0YiqjWvkSIL3jE5 +wC4uQ8ZGq4xCv6agPbsmuGGUX2/D9n2mvqBn6FQNgZsTT3XcXWaN21inWUGZovKw +vCkjSUc9Rl0V16MJue898f0RXE1GBszkn/LN9EH/9BGe5+mMLY6AHrNOeJ+xgg45 +JgdiAIrgMuuKfviPhiJQabj3C5PB2qTnYHxuQPPHhxbAiklZgh5ALbEytH9G92sM +zG3UWuCTl6zQ0cxYDN3YLY9FLZ+a+5R2rb5BlF7vbVO+h4UswjTk+dSvE6TP92Kf +wE1a2w0CgEKLcV0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFEjpZpZt1UvE5N99h0+Wp3vMDD7tMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE +5N99h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkEx +CzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UE +AwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29k +QG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlm +aWNhdGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQYwQgYDVR0fBDswOTA3oDWgM4Yx +aHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05XV19Sb290X0NBLmNy +bDBJBggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21w +dXRpbmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCAAcw +DQYJKoZIhvcNAQELBQADggIBAEp6g8NTXc89vngaI6Hu3FcLcsYwfcC3UvqUPCXS +W7qqc8GqR0p+n6FZWrMyAGVSjT/CXPZH6GZoTgkJK9g46YcWc1LhUIwnzj7dl3Gb +FAU1VRnc2PNYI2VxUbDLjAzxDPO5q93L1F/N4JYgamCCRDYqcUcg9uUrDxS9fz0G +JZaKDtmxelAb/TOo9jfRYzXmdCdzaZUi838UwfLYDoovBn+CTpWeKg+qs36ViK4H +qMRaHbPBAappJoxzWOQq9CBv9HGZ7GYpMrtE9Cwg0RyJyH6CHDTum6A3O9oa7Buu +zh36WAl1tXbJ/waW5RkS7/SIosWzi+SbASEeOY3X5jnvjFkSVZlQbNDfOzQkDAMW +3JXfBBWG0fCXFSBJxPpVUV4dSkhZFyFZUDmKTnbqyM10DFEh+MFpEIOShXDoqbdx +1hvaBlBzgbi46xQPRptdsw+Eo6LiYSBUJIuSB7WBzNxpcIqZDiNZgXC4useuBdOm +QEGT3KPPpRfhneEz5f7v4e8YGHbbkvv/F7OcHXNX3tQ8T7u7d8cCsiGDoFtpEISQ +qs68fxeGNUdnA13INl5G5iGkXlVLh+hiTdlObFO2lqHXzv8RL3+ZtSkzbsVEC1CK +p4AlmeUn6vRoUvLtrm5REF7GVKB1NjyKJV8JP+DGyoiR9JUVmsqvFj5eCejANGEs +Nwdl +-----END CERTIFICATE----- diff --git a/public/CA/certs/ac355ad0a3d470d1f1608566c48df94b9da5f308.crt b/public/CA/certs/ac355ad0a3d470d1f1608566c48df94b9da5f308.crt new file mode 100644 index 0000000..6f718c7 --- /dev/null +++ b/public/CA/certs/ac355ad0a3d470d1f1608566c48df94b9da5f308.crt @@ -0,0 +1,43 @@ +-----BEGIN CERTIFICATE----- +MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD +VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx +DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B +CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T +GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx +MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH +EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S +b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu +Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv +GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk +CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R +ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd +Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7 +gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu +mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8 +i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn +Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA +NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo +A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z +KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 +h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ +BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL +TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l +dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh +dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0 +cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ +BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp +bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ +KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo +NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op +bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN +/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE +QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8 +HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va +E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf +Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n +2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds +CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4 +UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu +-----END CERTIFICATE----- diff --git a/public/CA/certs/d8c674f8bf82d0aea70e05aafc8ddddbab9bab56.crt b/public/CA/certs/d8c674f8bf82d0aea70e05aafc8ddddbab9bab56.crt new file mode 100644 index 0000000..5121531 --- /dev/null +++ b/public/CA/certs/d8c674f8bf82d0aea70e05aafc8ddddbab9bab56.crt @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +MIIGFjCCBP6gAwIBAgIIB+I42RMLhBgwDQYJKoZIhvcNAQEFBQAwgdgxCzAJBgNV +BAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3Bl +Y2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRQwEgYDVQQLEwtOV1cgUm9v +dCBDQTEUMBIGA1UEAxMLTldXIFJvb3QgQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0 +aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtl +ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTMxMjIzMDAwMDAwWhcNMTgxMjIyMjM1OTU5 +WjCB2DELMAkGA1UEBhMCQVUxFjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNV +BAcTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNV +BAsTC05XVyBSb290IENBMRQwEgYDVQQDEwtORkMgUm9vdCBDQTExMC8GCSqGSIb3 +DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UE +DRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBALrz75sW0VR2qqi6UAtk2z/0GpLxlPsgGawLePfNZXvdYHcB +1JzPpAyCZ+PF4VIHz17tmdQFyN+msd2W6Op8SI5CW3MDHwA5HoAGcm6vx+xp95UX +96+fbqthL3UPNuOOW3EWXEb3DsF2wtrNXdhq4nyOMGrioe0fQvo8ij7Qg/eiFJSu +Sg3zPssa5AjsJ3P4px9kQusm2tkN9oH/1AZmE3CJXkVzqzEPbmnUzt/LD2I4Hd86 +KweNsSiBeZwrxWN7nQUla+rWE7Al+orLLnQbj14uz5Oeh+y2VnVmXxec23mebUcl +Pxy9GhxnKMF2wp6//nJs/soJKt/KEdWaMU4oW1m/rkJejjVQSvBvO89hL+4hi1iK +aoxXRnNnX6V5naXPAjlOXzDqZSnmDPk31gWL7uy7eeNY/+dCYKNk/ikstGAhfn0y +k70tUAguBf3zAewRL8JM05+HrYGdhCv/qFb+VrZEf0BgnSvq4XpVszNYJY+JePbW +smOw0/569aptCHaGtpuuvDO5F5GmtvN10NWYXRJx98txAT4SnfDHuxp/kbqlgXQF +Q+I38vVYRWfDOoakxZYESvGNlXZ12aY9RiMKp4191Los9yH16TXoERvg8Q1a1QEQ +l+fwM1iTg3RJ1WowCm6QvsU5NqVjrx0GzXCTxkd9OCjyiVwl64X9sDjYZhe3AgMB +AAGjgeEwgd4wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwQAYDVR0f +BDkwNzA1oDOgMYYvaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05X +V1Jvb3RDQS5jcmwwRwYIKwYBBQUHAQEEOzA5MDcGCCsGAQUFBzAChitodHRwOi8v +bm9mdXNzY29tcHV0aW5nLmNvbS9DQS9OV1dSb290Q0EuY3J0MB0GA1UdDgQWBBR6 +prE+wkxZU+lAqwU04QYbfTVQxjARBglghkgBhvhCAQEEBAMCBkAwDQYJKoZIhvcN +AQEFBQADggEBABV0Uw7kioLo/bUf9Bkcjq08v6zAvnjfp22u+P3USDWvjdlyBM1F +J39TOf2tAvZJ+33HzDanNL1oDw57IVw7QqIasLJRINa3gojUml6SaOT/DF0HpcJO +LN1e1x3oaQHHw5cljCFue4PRdja2z7EgsPY2qZdIdnN5CuaUI29qke8MD4cX0Ezu +KtCzkL8TWsc+QKZYodNjSwviOBIEOar1ayGAGfarqszDKHk3jG8W390BJBVtpUgL +zOyyv4SmKu+Zu090nAB91ThYYA3vnPV3Ar+tAKl0taSWNQh55jrwSA9BhrFGaRxb +huJWadC1O7ILrs72kIExzELUSDcqOhc1Nuk= +-----END CERTIFICATE----- diff --git a/public/CA/public/Developer-jonathon.lockwood.crt b/public/CA/public/Developer-jonathon.lockwood.crt new file mode 100644 index 0000000..2f03109 --- /dev/null +++ b/public/CA/public/Developer-jonathon.lockwood.crt @@ -0,0 +1,47 @@ +-----BEGIN CERTIFICATE----- +MIIIWjCCBkKgAwIBAgIGIBUQJxYoMA0GCSqGSIb3DQEBCwUAMIGqMQswCQYDVQQG +EwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAK +BgNVBAsTA05GQzEUMBIGA1UEAwwLTkZDX1Jvb3RfQ0ExKzApBgkqhkiG9w0BCQEW +HGhlbHBkZXNrQG5vZnVzc2NvbXB1dGluZy5jb20xIjAgBgNVBA0TGU5ldHdvcmtl +ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDU0NjAwWhcNMTYxMDI2MDU0NjAw +WjCB3zELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoG +A1UEChMDTkZDMRwwGgYDVQQLExNTb2Z0d2FyZS1EZXBhcnRtZW50MSQwIgYDVQQD +ExtEZXZlbG9wZXItam9uYXRob24ubG9ja3dvb2QxKzApBgkqhkiG9w0BCQEWHGhl +bHBkZXNrQG5vZnVzc2NvbXB1dGluZy5jb20xNzA1BgNVBA0TLkNlcnRpZmljYXRl +IHVzZWQgYnkgZGV2ZWxvcGVyIGZvciBORkMgU29mdHdhcmUwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCwEhy6BgG/XCGu1REUIhSHh95flBwiyBxf9yaF +KTkkGSY70AfMOvPtzfrf6qdHRySJWhMToVWh/X2gbjuPZUbPQJHEhpk1C154yDVD +g6t4Q0pyULBSHxdKxanNm0O6CfrXoDR9EmR6c+Ymy6+aD/KYQork/UKfZRzHPBwV +klNiEHE2C7lGScjlW0k9DNChdeO2O7Y5XYMY47NFKDsdMxIankmpiTzGiBGrulQq +RwuhJy8r5u26UzBJRQBxfm4Q9jT273ZVKK9cu3+zbb3s0ye4XvOM8zkgz24kXbiF +r7RvC4B5GxHoaBDXDUigKqv8g8XkLS+Rs2Ja+6KDZh6XPtvEZYQ48TsTqKmUH1++ +Tmyri3yg2WLYxOpzs8Qllp/O/1nH47U+2JkOxAI4HwleIg71mb+uF/jVBz/CweQF +LPPDo0k5NfYtMvWR+Veq+P9q2UGs6jgGmAghndQZfe01VxHkiaqwOraeTHn/JfXh +FlZIfalTap/lDK7aCJA0U0mJP554Vms2KgQK1YksojCxuXShR5A6VLK8CtSWXOh0 +Iwje5oPPNm2DYgRjbSPl4Q509EOCOMlC6ykUt04cuB1pgYrlXNnv3+oNzcpfOhhT +JOsX1rTxYYhZ+EmmQvOUEPWHPPClRqHOPN7PsaxI4EEFCIKfdEVWOEE1KJ8RmBmk +6VAoHwIDAQABo4ICTTCCAkkwCQYDVR0TBAIwADAdBgNVHQ4EFgQU9ihwzGTLPCqA +4CbMavWmtVLwHlowgeIGA1UdIwSB2jCB14AUxw61rrwGf9C0TBwsILKgm85KZI2h +gbakgbMwgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkEx +DDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9D +QTExMC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2Vi +LmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZYIGIBUQJxYn +MBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMDMEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6 +Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL0NSTC9ORkNfUm9vdF9DQS5jcmwwSQYI +KwYBBQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0aW5n +LmNvbS9DQS9ORkNfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgQQMD4GCWCG +SAGG+EIBAwQxFi9VUkk6aHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JM +L05GQ0NBLmNybDA+BglghkgBhvhCAQQEMRYvVVJJOmh0dHA6Ly9ub2Z1c3Njb21w +dXRpbmcuY29tL0NBL0NSTC9ORkNDQS5jcmwwDQYJKoZIhvcNAQELBQADggIBAETg +cMO9sC4hm6RIAdcKWlSAPD7+u5I+cxY0k7TRljSxGMu8WbzQU39wkEqK5PCgT0qm +Up0qFdc3osO19UfXJj67jI6450dB1LDHGa9ymuaXkTVEOUGeYPJ/a5UpJKN+PJPy +liPG3BP+6EvILMm0qd5EIvrmeAJtNtWEi6Y2Kkb8QAliSlovtsjHmbW0Mz1AzeQm +l9V/xOXbdQnp7A15T41XUoR5V6AJ9yraCMafFL/GaE2IXkIoUEpVb55hobsdAkwt +yjEZBxyv6A81t3v0HEpkEmyn6anmjCi3sLCKWzK0dTLL+8OyxUYXgmFxRHMyXu90 +ZrtGDInxl/MlSE3/3T8xINiaxhiZSrf5XZqPteRUCKCDPiEdYv19SbsypReguuLA +w5B2l0I/2KH2BMYOMy6170MPDiEbbFugDifwokmuGLHQqiz99AVFVwCMu/ThO1Hj +rm27HS8bYOMzyTiil+pEyhPpoP23P0aHCyESTsXcgfMBZkeTyWxvdj8dCCaJTGiF +GJ6mELEoOnNhLqVhouGzMOZMS0w5vBG/gSQGb76inVqxMFByWKvVzyBm62JJ9P7D +AI8aN2WjZ9c0Z0czEz/SKPISxQjGrdoeQvvmn3Qyg4TS7aWt4RVJh67m042pWPdO +0+2unR8IoW1J6AeQn7Nuz0PyEx+eCZqBp3tsH8zX +-----END CERTIFICATE----- diff --git a/public/CA/public/Earth_VPN_CA.crt b/public/CA/public/Earth_VPN_CA.crt new file mode 100644 index 0000000..f48d3ce --- /dev/null +++ b/public/CA/public/Earth_VPN_CA.crt @@ -0,0 +1,44 @@ +-----BEGIN CERTIFICATE----- +MIIHrTCCBZWgAwIBAgIJAIF057Inea3QMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD +VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx +DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B +CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T +GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx +MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH +EwJOQTEMMAoGA1UEChMDTldXMQ4wDAYDVQQLEwVFYXJ0aDEVMBMGA1UEAwwMRWFy +dGhfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3ZWIu +Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3H82oeWzt5ZBoyelJhBjp8WrjE5yrR9+ +/xn118D/WXGeLMPixXmjNe9Ik0tg824DBoc3/ZHOtt8Knk32LZZhF5BF1B5H8Xgg +zx46e23tufVzUWPt+tZjV35//T/PikYUZUdCTYbYZFOuR0VwOiJBtCu0TEwQDaLe +bT9YJmAiSACKRUAT5WJwmP8mxuwW0qL5gns3Sfldq1Fvqjwa/WZQfI1uvV0GeHdd +EWiH5sTe6wtIHjXUwV/YvCsDcqk3e/Jl77QgiYwduovx/jKRCNtpBVH9yA5wsdRk +cPhAEdF8SK/8Ti/8SOChYePmIlIpbqZSO5lxyGJB+JP6Lq5gFSLX2xkTx7Z+GrlG +hiq7++PyI5S9wOsxzb+yggiX9O09n8L39cQ8t6F48AXEZpdE8jdp+jbrLUhFJ33N +HFShms92VGmEL/Hp+o4jzLkKjj8JiZtQVEfTQWiCpU2Iy8SE2soFzx2XrGS4QNkG +5Qes39dfJtPzzugXgO9LjeRECfH1o5j5gr8MfV7S0Pa9KiamTRM+qCjyLM6FgboY +XtqvGNhjZPspZCL2BePNvXMOuWQY80W2NYwpcmtQWd9NXRTOMCkBSYbaTX2gny0j +sAG8OlKz/oNjEFhuS9DYhaB2d9i/7Ye8zFGNxhX/zSXrwSFYB7ew9unACk+UMW4m +7oX3ZkaBx50CAwEAAaOCAcwwggHIMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FHofT+JsVUY8oAVJR3ijj0MxpFq8MIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 +h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ +BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL +TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l +dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh +dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQwYDVR0fBDwwOjA4oDagNIYyaHR0 +cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML0VhcnRoX1ZQTl9DQS5jcmww +SQYIKwYBBQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0 +aW5nLmNvbS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0G +CSqGSIb3DQEBCwUAA4ICAQA/Esj2AP0oM51YYuPhE1Mmknkx6Xxnn49lZim9BJEr +PMe5+M1wxlXnMklHl0AEyf59W1V6PCvlONonsOOZg/Dncm5w4AYdjeUSUxGMr6lw +kVViKkPApv1NBzw3kmJDL0CazTR3K+nl4mB9BTbOSnvGX7QUcZZ92mDxqBAiTaRb +rk8OzDW4+Lla51hSsBYuQrmRtx1jT/OZxLL6HDfM53HTLMvbFMndC2pnZL78owtp +q/V9zyyWC2fjDFGeMAv/7/0BuwfP3Ovir5OIv7C8YMrfcshgZhdt5E4mKX02TENT +x0tfNV/T/TeQGjdX85L4uYnViAA+rAlVRjE8Y0rZInnhDahI5ptpUUjSUvF0D3k1 +ZTXvCqvev4As7k0ci4mCO15LQLcQWOrirzARSR4l1OFWmlxd3zy8CBgjN8RgV0r+ +qPp1DWO/5hqKgVoBUKKAWX7cVu1FZYlxjiKqYsZHkwq5vy7ibHCSipufCWCVdU1X +dkhXhbEaS4FIA1epQNhH+GPyMxVU5uTTieSx0uvEbKvJ9UmLIGQLxBsWSgfmUKjc +xST6RlvTmKywV3ansfmYw84IxSZylpm8gT8+r5iod7lHXre1f+hESmE4lQvQ51eM +f3RjNf5W+uGtaPTGzZRN+b//kGs1pmn6Mtyr94DQCHp3LJCAVoHpFqy8PqjdlLNo +Yg== +-----END CERTIFICATE----- diff --git a/public/CA/public/NFC_Public_Website-nofusscomputing.com.crt b/public/CA/public/NFC_Public_Website-nofusscomputing.com.crt new file mode 100644 index 0000000..2c96b87 --- /dev/null +++ b/public/CA/public/NFC_Public_Website-nofusscomputing.com.crt @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +MIIF5DCCA8ygAwIBAgIIB+I42RMLhBkwDQYJKoZIhvcNAQEFBQAwgdgxCzAJBgNV +BAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3Bl +Y2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRQwEgYDVQQLEwtOV1cgUm9v +dCBDQTEUMBIGA1UEAxMLTkZDIFJvb3QgQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0 +aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtl +ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTMxMjIzMDUyNzAwWhcNMTQxMjIzMDUyNzAw +WjCB4zELMAkGA1UEBhMCQVUxFjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNV +BAcTDU5vdCBTcGVjaWZpZWQxGjAYBgNVBAoTEU5vIEZ1c3MgQ29tcHV0aW5nMQ8w +DQYDVQQLEwZORkMgQ0ExHDAaBgNVBAMTE25vZnVzc2NvbXB1dGluZy5jb20xMTAv +BgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20x +JjAkBgNVBA0THU5vIEZ1c3MgQ29tcHV0aW5nIENlcnRpZmljYXRlMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyQqO2ehMgJt7/smhusiPQn183w//y9ZE +6IZ8ylVsQ45HEI8svadYbKayVj4XzOl6h91asi3mGKllRq1fj7/Tekid641ew1Em +t0yMbMbxCj7NW7jM3UeTNP4+0OtNjXKGI6A2/ciS4lQoSC7TQc37L5tr3qN6Tzbt +xLKfvyOIPczDbDBBtfAicw7071ICWjeMGJ/MASAO0RR+c77TcNFqNPkzMztyJpuc +Qy4D+iGMDDfNfltcjd+NA5Y7YSUyx4hl05IIjY2FlmBwC1nLTYtEV4hWN+lDM8W0 +A736zo+kiP/SbryqYVUgJZoCaJV38NRB3ksNDHELwbJAE5WDdP8KlwIDAQABo4Gk +MIGhMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgXgMDwGA1UdHwQ1MDMwMaAv +oC2GK2h0dHA6Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL0NSTC9ORkNDQS5jcmww +QwYIKwYBBQUHAQEENzA1MDMGCCsGAQUFBzAChidodHRwOi8vbm9mdXNzY29tcHV0 +aW5nLmNvbS9DQS9ORkNDQS5jcnQwDQYJKoZIhvcNAQEFBQADggIBAF4LBlQsLtH5 +uLoe2L5Kbs7QFkBa6Wc6i654yVSVty/pUMp8RDOrrortBruSEQ+bZhX8AfPoMtKD +ZKIut9RojJTBuHpDzDZNgNcQdaw/Fx9FAe692OI6maX3bB3On4O5FMiCLegE3i85 +8sIVF86MicQlyKHDajIpUedBHVuWhIpNDhmBMS6JMIaYP7ix6L/fLPBsum6QkJCX +C8QKE0msm9ki3vF/LrM3PwaUvNJ4tQgjBBWsbmLPf8vcLLHaarjksB7ZQdIgXiHj +oD41uc28ORi1/xL+AyTYU1q1qVGyfodwttWZ2bFKqdSRf+5YkFfqOjrby67CvCOo +YJRjJIIT+1Hug3af7gRNljuoATwPCbeb0uCMvUgR24b8k8UVC2cYXgdN4Qriiq9W +9c7gODRmPOt1MqJsR/tsawWpLC9BuIhp915LGc1tZ1fX+toBfyqfQKDKNjazDVPi +jFc6U2c/+FOQhyCqVrqATyLeR7RvJTmmNiHCCg5aJdzqo0SstWte3fJ7AWgY/OhO +TMZG689C6ZWEQjJBrfm3OfuJFYEePg+gJOnswIM/VSd4QVUBlWt8Q/VlnTkzOF38 +LeISdO5yJeyXZft2/t4zTR+o6dETzvZYeCSiH74GEnusZ5KVZSe+0lBDIbStvu/A +wpcM0mL7IYln8Iyb1Una2R+xS/PIgJO9 +-----END CERTIFICATE----- diff --git a/public/CA/public/NFC_Root_CA.crt b/public/CA/public/NFC_Root_CA.crt new file mode 100644 index 0000000..6f718c7 --- /dev/null +++ b/public/CA/public/NFC_Root_CA.crt @@ -0,0 +1,43 @@ +-----BEGIN CERTIFICATE----- +MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD +VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx +DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B +CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T +GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx +MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH +EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S +b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu +Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv +GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk +CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R +ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd +Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7 +gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu +mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8 +i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn +Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA +NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo +A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z +KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 +h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ +BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL +TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l +dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh +dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0 +cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ +BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp +bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ +KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo +NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op +bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN +/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE +QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8 +HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va +E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf +Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n +2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds +CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4 +UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu +-----END CERTIFICATE----- diff --git a/public/CA/public/NWW_Root_CA.crt b/public/CA/public/NWW_Root_CA.crt new file mode 100644 index 0000000..6ed8a02 --- /dev/null +++ b/public/CA/public/NWW_Root_CA.crt @@ -0,0 +1,43 @@ +-----BEGIN CERTIFICATE----- +MIIHpTCCBY2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMCQVUx +CzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQL +EwNOV1cxFDASBgNVBAMMC05XV19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25h +dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr +ZWQgV2ViIENlcnRpZmljYXRlMB4XDTE3MTIyMTAwMDAwMFoXDTI3MTIyMDIzNTk1 +OVowgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAK +BgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTEx +MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv +bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBANNh/YQ88bqyR2569AwMnqe+9VjeUoFQcGgr +JjcS76lZaAERnbl49PJM6X9xcFBQoCD3S1WnNXL26ZtA+PKdfvZOL8GIkwZQrXNB +Ts2f4VP1dahuxuHYlmlwlpdT84JKZlDloUrDOgx0D707Z+ybUrTFjqaQjp/ZfybQ +QLiYfK/6v7K7rOh8WyeWWunDo8uYlZWmtmzAQU9IQimYWepZ4/O+yfWnUVRGvYMD +daALrNaj5MO41J13Y5sXDdl++yTCbujJ+xTDHKfjoJ+KpEuLa8VzWjJYAjm+TSXK +gWObOxpnrb4sW2bB2pPtwQoOKd3tXYW2bRKJHGt2pVzgyGUjZ1yGKFS04+cg9OpP +ePFtS4aTKVTMIe7BHwPA1fhu2efqmfP0vSY0EmRHuk9GIqo1r5EiC94xOcAuLkPG +RquMQr+moD27JrhhlF9vw/Z9pr6gZ+hUDYGbE0913F1mjdtYp1lBmaLysLwpI0lH +PUZdFdejCbnvPfH9EVxNRgbM5J/yzfRB//QRnufpjC2OgB6zTnifsYIOOSYHYgCK +4DLrin74j4YiUGm49wuTwdqk52B8bkDzx4cWwIpJWYIeQC2xMrR/RvdrDMxt1Frg +k5es0NHMWAzd2C2PRS2fmvuUdq2+QZRe721TvoeFLMI05PnUrxOkz/din8BNWtsN +AoBCi3FdAgMBAAGjggHGMIIBwjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRI +6WaWbdVLxOTffYdPlqd7zAw+7TCB3QYDVR0jBIHVMIHSgBRI6WaWbdVLxOTffYdP +lqd7zAw+7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYD +VQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05X +V19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3 +b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRl +ggEBMA4GA1UdDwEB/wQEAwIBBjBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vbm9m +dXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldXX1Jvb3RfQ0EuY3JsMEkGCCsGAQUF +BwEBBD0wOzA5BggrBgEFBQcwAoYtaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20v +Q0EvTldXX1Jvb3RfQ0EuY3J0MBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0B +AQsFAAOCAgEARpj46yWBnbJIfqh7V9c1AWZmbzqogJynp5AqyC2e8Rp59dpPKJ60 +BC2WVUMsCHqyhl6oZwmn2Ejud+iodGo4IwdgDneFvQQAiF7TVTBnBRHnup3rLtTX +zvqIBPyqBmrvZSjSfG0mStb3YWS41yj9bhsqy1qRTdXS+Ghc4I1DcOWu62NbhbP/ +UHPUEwCyPxEWLtxk0u8N8Hqmlr3qHHM53cKaOUUIn6VMtq2S0o39xWt7QuHWe3Aa +COQYaAVQ60f9cZUmw7h31d3oen7nrlaaDAp7i1e4HuTb8+PzetoGjJ8xCt4cbnp0 +ThQFdVuaLszSiHpmsKPvdazIVjhvT7CTM5EydsDHZFA6cMmWjYYm5f9MXbiCSebC +2q+2W2vO92yd/8JE3JCRc8A2Mi4RSw9SziN/MCvueorIFJXfawz3rARgk5KXKPNj +DBHcxxaQOTCJHLblGsv+9S/ANnucOihQRPWPGKGr80Yy5wQ8TKnuElvzrOjyR2Cj +HGqSX2ar1GnFtmDsfamnJ0kb+2Sbamt3slAxUM/Qc+SIWepVtSNb8IppWPCxmPOd +QyUMRayfkkc2qdo3xyUV1zE/alMPK6k0epyZ0+lyTo+sVpyzVq/D1wS63pUXiK/f +gB5/XW5AC1ngeN3DBlOc/R5mscyv4o4cHOauxMKjldGgGhqI0QnRSi4= +-----END CERTIFICATE----- diff --git a/public/CA/public/NWW_VPN_Server-vpn.networkedweb.local.crt b/public/CA/public/NWW_VPN_Server-vpn.networkedweb.local.crt new file mode 100644 index 0000000..687cee9 --- /dev/null +++ b/public/CA/public/NWW_VPN_Server-vpn.networkedweb.local.crt @@ -0,0 +1,40 @@ +-----BEGIN CERTIFICATE----- +MIIHBDCCBOygAwIBAgIJALVEKS03soafMA0GCSqGSIb3DQEBBQUAMIHWMQswCQYD +VQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90IFNw +ZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjETMBEGA1UECxMKTldXIFZQ +TiBDQTETMBEGA1UEAxMKTldXIFZQTiBDQTExMC8GCSqGSIb3DQEJARYiam9uYXRo +b24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2Vk +IFdlYiBDZXJ0aWZpY2F0ZTAeFw0xMzEyMjMwMDAwMDBaFw0xODEyMjIyMzU5NTla +MIHiMQswCQYDVQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UE +BxMNTm90IFNwZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjETMBEGA1UE +CxMKTldXIFZQTiBDQTEfMB0GA1UEAxMWdnBuLm5ldHdvcmtlZHdlYi5sb2NhbDEx +MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv +bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBAKE3y+wq5woYZr0rDBXxzJz4dGFPAeQdC7Hg +PwUEIvTk6FooNLdnDyf52KQPCsa4HmuM3PbR3oz0Hwn0PL7bNaSzmccAcSQejuij +WQHSGvOiYDLKrjNmwGAyVflQDcN7q5hm27A4Ltio+DBqLZkE6MCg958ThysHaHiR +dIMiYDeDba9lUv5H4Zaud+8eEAwDa5VJUxr4D+Wbzikc4vsCZFBwdByInWdpGMMC +Hyz3dQJmlW988rq3inB7LkMBCn/TOlG/RZb9b2pyoow8A+YiL0tWSa57WqELgSlC +YPx66bjZa03Nm8VzDPePgh8zFPlKBp9iXHDYQ+NH4GgPror/Cx0ASMcDl+6Bu4Kg +F4pHvOopAplKPPNC8AFBxTjyBzPpK6x5hLRiPGOuu8259QmG7QTya9fBlzF3/uky +b+g7CjZ0tSycZdf2wA599p4/ossQab01cnLapqSyx7N2EZNAtWpsNdq0SGaiIvjh +xLMmSLlaht5GV7qSRQ2ho+/Rn6JWSnrmVbA39olIqhwwQM+TZVnekKXAQwARDWLF +XNBWwueJnU/OivVOkJbHtiCHtq2bJIcQd0ZOix9SWsiXvCNZBxzZS2t4R4m5re5W +FkwYxCz+C3NFdCzEF2inaXjRWckMq72HZYHuZUOE7tYRKYZ4pl0d7ejl0zgm2cee +Hb2RyuixAgMBAAGjgcYwgcMwDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBaAwPwYD +VR0fBDgwNjA0oDKgMIYuaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JM +L05XV1ZQTkNBLmNybDBGBggrBgEFBQcBAQQ6MDgwNgYIKwYBBQUHMAKGKmh0dHA6 +Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL05XV1ZQTkNBLmNydDAdBgNVHQ4EFgQU +lFo7HaYd3NgW2Z8m3bU2UE/ufk4wDQYJKoZIhvcNAQEFBQADggIBAIEWGvihO55D +qusXDmFPNPqd1HQ3pj+MSuxiuWG8DKW5f0Px6Wvhc1jKevPIu7ng1B2COfGcmjDD +Os1YKr+r/T7FS+gzT4yDe7kwsehAF/+TrtbIF9cBv3zKqhnlVLHTYgn0td1fZFxT +/Q+yfie+fSzOl9Xt149F7HWvikLlqaKDyjTpCnz0q5Mnr2MZvjxgSGEybxS/RvI5 +j4NY8z1d/JSI5eMeegi4ZKkGTiO6BqLCRvtL4LAFq4WbmrgxMmteBshACtxAy4fq +Uofzjx6ZmHic2npRIaTCVHG+WP0bmoDHQEYiwuZLIqFLLMsJ5fa8ovWcyH7EWpfJ +8vX053lctyH8ui1ONL+vfjX6WPjBcAfZsuso8TurckzftPDJXPbz1ScpFaaIbfiA +F2c2DQwfhF8HU/bnaSKvsb5dqnQqiZxiaWmevs7ZPoj9TCKSIbgund7eLLwRlZno +ZY9/Bf292Bn/8vn+utZcx83S9h0VJHZnJgvYqpKdvo/7YEN2yd05SMeXtxHugUfh +kzNRXp5yTGfj8NNEJp0ksSPy+Z+5OPgzQzw+VSdXuFI8Tjrjjmbf3hAAi8cCI42O +MbsoDUZr9tauqg2jTjNnX728FrkIPWfOTp1yWRnSd2/PA+aPIJNSSd5Q3tzWZZ7r +B062YXDRqRM8GzHVoEmSwxQJWNZw9UTJ +-----END CERTIFICATE----- diff --git a/public/CA/public/Pegasus_VPN_CA.crt b/public/CA/public/Pegasus_VPN_CA.crt new file mode 100644 index 0000000..1d098b9 --- /dev/null +++ b/public/CA/public/Pegasus_VPN_CA.crt @@ -0,0 +1,43 @@ +-----BEGIN CERTIFICATE----- +MIIHpzCCBY+gAwIBAgIINsj7HlzAfYswDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNV +BAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEM +MAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJ +ARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZ +TmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTAeFw0xNTEwMjcwMDAwMDBaFw0yMDEw +MjYyMzU5NTlaMIGjMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcT +Ak5BMQwwCgYDVQQKEwNOV1cxEDAOBgNVBAsTB1BlZ2FzdXMxFzAVBgNVBAMMDlBl +Z2FzdXNfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3 +ZWIuY29tMRcwFQYDVQQNDA5QZWdhc3VzX1ZQTl9DQTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBAMjkj6nShoH9YfKCa8MbQFV0dqkoHuuv11W7IcvL4isR +NrLshe8zlB3v9cGsaWot9zu+tbcX71SW+2vdlCTuNerdlOQIiMntjkbHPG8iwjZu +WHpu/DqZv9BJjfIuCWWb3eTw6DuvQTo3Lwauh7z/Vp8IKPmoloAVnj8rZizVqWxV +cJwPD3vKJAKtbtZkfC7dgWFPRWTtX26DVV/EmhICinE/KmkfckLxKdkpuyejiHz8 +uduweS9Wfj21mgsWKeSYkzONGr04YmYxCLWGqyqwQ+ZsNRJWdRFBHKwKwH3k01I8 +Ce6/tpNZYQLYykUHTCpjHW4UuvkXFo2SK9ilJ5bUze5qedYrFMXsGJoWgw+xCYtZ +QkFQmFNXFk1oplVwK/8Jnn3mfEpsbtQBW4RAyOTETRlWpe+n+/BgZNPdncODXWN0 +Gvtg4guxftdNesXd+6e4R7tC2GX8sqxOzNji64KxAoiMPK0qwhyFKegD7iuMC/LC +D2KhFNxjRHkJIe1MfvPAZPygiQYPbNatVLzRSaS8Uj132IUfqqCPyrKNg/rJb6Yh +Ovlf/jEMUaEzH9xUmlOEiKf2yyXrw6vTWhtkYCNCyronLblFc+NiwSzCxcINMlX+ +hj8zg49wQC/80QjwdHbz2KP9sLzFtuURFjRdpfYFaiI7iWapo+eHYq6OKq4nH1Z1 +AgMBAAGjggHOMIIByjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRBbMbXhzlI +dbRsB2xNIPbP2kCbETCB4gYDVR0jBIHaMIHXgBRI6WaWbdVLxOTffYdPlqd7zAw+ +7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO +QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290 +X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3 +ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlggYgFRAn +FiYwDgYDVR0PAQH/BAQDAgEGMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9ub2Z1 +c3Njb21wdXRpbmcuY29tL0NBL0NSTC9QZWdhc3VzX1ZQTl9DQS5jcmwwSQYIKwYB +BQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0aW5nLmNv +bS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3 +DQEBCwUAA4ICAQCGuevjkXLiEC03sX0Iu1oV8IgrRv76agQseJs/s+xBJ2NznjT8 +xsZX7QmpAJ1tdOtiwQwggF04KHj6rlt0PbA2MHjz1uB148pep8DpF/z+iCW8exA8 +iIBjRK9A339Q8gM8jJRBoz6I3Ipwkx+06+DWs73fwW2Y1PgHg445GB1ToN3cKS54 +YomZUA1yagdBiDXriPReFQPBTk18dyA8ZIoVse1J4HgGr5i+5for6IK1C7w2UoTh +55sEP44VskYpAZCaCd531OVgruw+SixhOJbHS/j/smN1WinLEptBKi7LY+nLJtiE +BEDiexeXwlfZWBTSs34yDIn8JBtOLYd1Ur/kB/j4Wbs7xT9RJ1VhTDFZcOB3rREj +comhcuWsbQegdt9M0DWZdriZzgzGQBm5dqFnp6FAG4tOjAGr24TP6tsq9sbS1Eyk +5snwE70mTQ9bCDFU4Re+bVfAIFDfY9HF822ZgMdy1BQw/S5a2YoRMZtYaZFGYidp +VNk/ICnl6ELlg6ZlPAiAn2PaBICTtzlt/TpznAFEvxlvc7tsc0HsDKVT0n+T8wv3 +yp0rbgrQrJlI+Z9nl+g3ZHDc9mQXbcIWBkUFUoIsTUwdGExXypWDIlQ86pqyLFnl +42BzmL9mpf862aHybxCBOEre2uBUhFGWTTjNm7kjItM5SGQGUq7EAd1p6w== +-----END CERTIFICATE----- diff --git a/public/images/nfc_header.png b/public/images/nfc_header.png new file mode 100644 index 0000000000000000000000000000000000000000..f6ef14f7c47e311704bc3f0028a4caf3f253a2fa GIT binary patch literal 34936 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%0AQrby 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

M@OV`(iAu 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%0AeJ9&XqbC9D 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 literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..171e066 --- /dev/null +++ b/public/index.html @@ -0,0 +1,52 @@ + + + + + + + Home [No Fuss Computing] + + + + + + + + + + + + + + + + + + + + + +

+

+
+

View us at other locations

+

+ - Docker Hub
+ - GitHub
+ - Gitlab
+ - FaceBook
+ - Read the Docs
+

+
+
+

© 2007-2021

+
+ + diff --git a/wiki/current/index.md b/wiki/current/index.md new file mode 100644 index 0000000..56519d2 --- /dev/null +++ b/wiki/current/index.md @@ -0,0 +1,3 @@ +# Welcome to the Wiki + + diff --git a/wiki/current/info/150225_choose_internet_service.txt b/wiki/current/info/150225_choose_internet_service.txt new file mode 100755 index 0000000..cf02b4c --- /dev/null +++ b/wiki/current/info/150225_choose_internet_service.txt @@ -0,0 +1,109 @@ +====== Choosing an Internet Service ====== + +This article has been targeted towards the common mass who don’t understand the technical details and considerations for choosing an Internet package. + +The Internet has now become a mainstream item within the average Australian home. The Internet has become so ingrained within our daily lives that for those of us that were around when the Internet was born have actually forgotten what life was like without it. I remember when I was growing up that if we wanted to learn about something you would go to the local library or to a family/friends house to look through their Encyclopaedia Britannica which more often than not was at least five years out of date. Believe it or not that was only 15 to 20 years ago. +I would consider myself lucky in the regard we were introduced to the Internet in high school way back when [[http://webcrawler.com|Web Crawler]] was what Google is today and the only thing of any value was searching for random phrases like porn homework answers. It was a very new concept to have the Internet or even access, which was often met with confusion and a sheer lack of knowledge. Being part of that generation we grew with the Internet and became the first generation to learn about it, and to the behest of the generations before us who were either left in the dark or were very slow on the uptake. + +Now if I haven't lost you already and hopefully by the end of this article I have been able to provide you with more insight on being able to choose an Internet service from an ISP with a little more of an understanding of the technology behind that Internet connection. + +Below I will cover a little of the technical details and hopefully bringing into perspective, so you can better understand what is being explained to you. To do this I will use the flow of water methodology. + +===== Bandwidth ===== +Bandwidth is the actual speed of your Internet connection and its unit of measure is bits per second. So basically if you think water pipe, only so much water will flow through a water pipe but if you increase it’s pressure you will receive more water. For the actual Internet connection different technology is used to essentially achieve the same thing. + +===== Quota ===== +This is how much you can download and/or upload from the Internet. Its unit of measure is bytes. Think of a water tank, larger the tank the more quota you have available. This will be set by your ISP and 9 times out of 10 will be limited. Every Time you connect to the Internet you are using this available quota. + +===== Theory ===== +Now to fully understand the quota and bandwidth I will have to cover a little bit of computer theory. Computers compute information by doing mathematical equations. The only numbers a computer recognizes are [[wp>Binary_number|Base 2]]. Base 2 numbering means it uses the first 2 numbers, being zero and one. In common computer terms this is called binary which is always in the computer world as a minimum 8 bits wide i.e. 01010101. Each digit of the number is a bit, four bits to a nibble and 2 nibbles to a byte. Unlike the English language; Binary is read from right to left and each one or zero, within a binary number is actually counting from 1 through to 255, which takes 8 bits of information. Binary is a [[wp>Notation|notational reference system]], so starting from right to left each digit represents another number, the first number being one, each number after that is double the number before it so the next number would be two, then four, eight, 16, 32, 64 finishing with the leftmost digit as 128. +Confusing? Not really, when the bit is zero you don't add each notated number, you only add if the bit is one. So 0001 would be one, 0010 would be two, 0011 is three and so on. + +Communication between different components or computers (network or The Internet) is measured in bits per second or bps (lowercase). Computers store data in bytes or B (uppercase). Each unit of measure has multipliers like normal numbers, computers use the following multipliers, Kilo (K) for thousands, Mega (M) for millions, Giga (G) for billions, Tera (T) for trillions and Peta (P) for quintillion's. The conversion from bits to bytes is a division of 8. + +So why use different units of measure for the same data? simply put, computers are electronic devices which communicate with an electronic signal with 1 being on and zero being off; basically the signal is either on or off. So the transmission of data is serial or singular and storage is in parallel or stored in octets which is a group of bits. Hence bits and bytes. generally you will find lowercase letters are used to represent bits and uppercase letters are used for bytes. + + +===== Connection types ===== +The common Internet connection types in Australia are ADSL or via the Mobile network. Very rarely used but still available if you look hard enough dial-up. and the newest and greatest is the National Broadband Network or NBN. With the exception of the NBN all of the above connection types will have a max speed. This max speed is a theoretical maximum speed and there are many factors which generally slow down your connection. All connection methods have a technological peak, which basically means there is no known way to improve that technology any further. + +==== Dial-Up ==== +[[wp>56_kbit/s_modem|Dial-Up]] Internet was the first mainstream way to connect to the Internet. For this to happen you needed an active phone line, a computer with a MODEM (short for modulator/demodulator) and you would plug a phone cable into your computer, which would dial a number to connect to the Internet. At its technological peak the max theoretical download speed was 56kb and approx 33kb up. Dial-up modems are generally part of the computer. The downside to Dial-up is that it relies on good quality phone cables, basically if you have a bad phone line you will have unstable and slower Internet. Dial-up also suffers from signal attenuation which means the further away from the telephone exchange the lower the speed your Internet is going to be. The biggest downside to having Dial-up Internet is that you can either be connected to the Internet or on the phone, not both. + +==== ADSL ==== +[[wp>Asymmetric_digital_subscriber_line|Asynchronous Digital Subscriber Line]] or ADSL is the most common Internet in Australia. This is also commonly referred to as broadband Internet, the biggest difference between ADSL and Dial-up is that it is always on. When ADSL first arrived it had a speed of 1.5mb, which was a massive increase over Dial-up. As ADSL evolved its speed increased, when this occurred its name slightly changed to suit the technological level, ADSL1, ADSL2 and finishing with ADSL2+ which has a maximum theoretical download speed of 24Mb and 2Mb Up. An ADSL connection like dial-up Internet requires a modem and suffers with the same line issues. Where ADSL is an improvement over Dial-up is that you can still make telephone calls when you are have an active Internet connection for this you will need a line filter. To utilise an ADSL connection you require an ADSL modem. + +==== Mobile Network ==== +Again this method of connecting to the Internet has been around for a while and with the invention of the smartphone has become quite a common way to “surf the Web”. 4th generation or 4G being the current technology has a max theoretical speed of 50Mb. The connection speed is shared amongst all users utilizing that mobile tower to connect to the Internet, and if you don’t have good mobile reception you will not have a stable Internet connection. + +==== NBN ==== +The National broadband network or NBN as it is known is the new way to connect to the Internet. The NBN unlike Dial-up or ADSL does not use a phone line to connect to the Internet. The NBN uses [[wp>Optical_fiber_cable|fiber optic cable]], which uses light not electricity to communicate. Fiber optic cable can be thinner than a human hair. Fiber Optic cable, or fiber networks have one purpose; transmit data, not voice or electronic signals like a [[wp>Copper_wire_and_cable|copper cable]]. Since fiber is designed for networking you require a router to connect to it. A router looks very similar to an ADSL modem. Unlike the other Internet connection methods above, communication in either direction is the same. Within Australia this is not the case, and for whatever reason you will find most NBN capable ISPs will still have packages with different upload and download speeds. Fiber networks are very mature and their speed is actual, not theoretical maximums and are capable of transmitting data at 10gbps. Using that speed for connecting to the Internet is overkill and you will find that most ISPs offer no connection speed above 100mbps at the moment. + + +===== Choosing a suitable Internet service ===== +Now hopefully by now I have given you a little better understanding of the connection types and terminology in relation to choosing an Internet service; believe me it is still a cumbersome task. Yes there are a lot of things to consider. From a technical standpoint the following should be taken into account: + * availability in your area + * what you will be using the Internet for + * bang for buck + + +==== Availability in Your Area ==== +For a majority of Australians, ADSL is the best Internet service you will have available. The most annoying thing when trying to connect an ADSL service is the wait time. This wait time is due to the requirement for a technician to have to go to your local [[wp>Telephone_exchange|telephone exchange]] to actually connect you, that is if there are spare ports available in the exchange. If though, you can get the NBN, go for it. Seriously you are being foolish if you don't. Why? the NBN is an actual data network and the speed you pay for is what you get, overall the NBN is more reliable. + +==== What You Will be Using the Internet For? ==== +Most website designers will aim for a page load time of within one-two seconds; Even now how website technology is becoming more media focused, I would not recommend any speed lower that ADSL2+(24mbps) or 12mbps for the NBN. Why the different speeds? Remember that ADSL is a theoretical maximum, on average. Most ADSL users will have an actual connection speed of between 8mbps-22mbps and the NBN is actual speed. Anything faster than this for just “surfing the web” is overkill, and a waste of money. Where would you require a faster connection speed? if you start to use services like netflix and/or Foxtel[[wp>IPTV| IPTV]] to stream videos. Having more than ~5 users, may also be a consideration for a speed increase. +How much quota do you need? if you have had the Internet before, go look at your previous bills, most of the time you will see what you used for the billing period, use this figure as a basis to guesstimate how much quota you are going to need. If you have never had an Internet package before then as a guide I would recommend nothing less than 10GB quota per month for the average light Internet user. I can't emphasize this enough, please do your research before you take this as gospel. Most people do know someone who “knows boats” would be able to assist in assessing how much quota you may require. + +==== Bang for Buck ==== +Read the fine print………. READ THE FINE PRINT……… oh, did I mention fine print? Every Internet package has fine print. This fine print will cover things like: + * what is unmetered((this is a category of sites that you can use without it being counted towards your quota.)) + * how much quota you have, read carefully some ISPs will charge by the megabyte if you go over + * what happens when you reach your quota limit (good ISPs will shape your speed ((slow your Internet connection speed))) + * what you should not do with your Internet package (some ISPs won’t allow you to host your own website.) + * contract period + * exit fees associated with leaving your contract early + * fees associated with moving house + * support + * your responsibilities + + +==== Further Considerations ==== +**“Unlimited Packages”** Some ISPs do offer “unlimited packages”. Please read the fine print so you can get the definition of unlimited as sometimes unlimited does not exactly mean unlimited. Some ISPs have been know to use peak and off-peak times, during peak you will have a quota and off peak is “unlimited”. +A big consideration for unlimited or large packages with lower download speeds is calculating what you could actually download in that billing period. This is a simple task and would use the following formula. + +(Billing Period Days x seconds in day) × max download speed in bits ÷ 8 = max bytes for period + +Example:\\ +Billing Period days = 30\\ +Second in one day = 86,400\\ +Max download speed = 22,000,000\\ +\\ +( 30 x 86,400 ) × 22,000,000 ÷ 8 = 7,128,000,000,000Bytes or 7.128TB + +So with the example above a package with a quota above 7.128TB with a download speed of 22mb would be a waste of money. + + +**Bundled Items** We have all seen and heard of them. +//"Select our Internet Package for $120 a month and we will give you a telephone with free calls, 200gb of download and if you sign up for a 24month contract we will throw in a free iPad"// + +With the exception of a modem-if you don't have one; be very careful of falling into this trap. These "Bundled Packages" are plain and simply designed to get your business. Believe me when I say you can get all of this for a hell of a lot cheaper. Again __READ THE FINE PRINT__ and calculate the cost of the whole contract period including any hidden fees and you will find that these are quite expensive packages. A simple way to test these packages is how much is thrown in, the more free stuff that is included outside of the Internet package, then the more desperate they are for your business. Listen to your gut and the age old saying //"If it's too good to be true, than it probably is"//. Once in my life time I have seen one of these packages and it was too good to be true, but turned out to actually be worth while in the long run, again this was more than likely a "once in a lifetime good package" + +**Naked ADSL** works exactly the same as normal ADSL Internet but you don’t have to pay for the phone line as it is included in the “Naked ADSL package” if you don’t use the telephone much or you are utilizing VOIP choosing one of these packages can save you some money. Like ADSL this is only available in certain areas, Please confirm with your ISP for availability. + +**Support** It's common practice for ISPs to outsource the first stage of customer support. This problem is a plague that needs to be truncated from the IT((Information Technology)) industry. Why? 9 times out of 10 the person on the other end of the phone either does not have a good grasp on our native language or has an accent that is so thick you can not understand them, which makes it very difficult for the hearing impaired. When this occurs the assistance you called for doesn't happen, and is escalated to someone else in the chain who may or may not be able to help you. In the end you are stuck with no internet and built up frustration from a 1:30h phone call.\\ +There are however some ISPs who are old school. they will give you a callback after being on hold for a few minutes and if your assistance call needs to be escalated will either call you back or give a detailed handover to the next person you need to speak to. bottom line if you are not technically minded than ask around to find a good ISP who can assist you and be wary of outsourced tech support. + + + +===== Conclusion ===== +Lets face it, The Internet has made our lives easier. You can now sit in your lounge room and read this long, very mind numbing article on how to choose a better Internet Service, do your Banking, Pay Bills, Buy Goods, look at porn and best of all place video calls to family and friends. What will the future hold? Who knows but given how far technology has evolved in the last 50 years, I think the next 50 will yield even more from this simple little invention courtesy of [[wp>darpa|DARPA]]. + +Like this article? Please consider buying me a coffee. Donations can be accepted via PayPal via our store at [[NFC>product-category/donation/|No Fuss Computing]] + +Some ISPs in Australia: + - [[http://internode.on.net|Internode]] + - [[http://iinet.net.au|IINet]] + - [[http://westnet.com.au|WestNet]] + +The information contained within this article based on the opinion of the author and is provided for informational purposes only. Before utilizing any information or advice from this article you are encouraged to do your own research + diff --git a/wiki/current/info/mantis/01_access.txt b/wiki/current/info/mantis/01_access.txt new file mode 100755 index 0000000..3cf09f9 --- /dev/null +++ b/wiki/current/info/mantis/01_access.txt @@ -0,0 +1,50 @@ +====== 1. Bug Tracker Access ====== +First go to the Bug and Feature Tracker at [[https://nofusscomputing.com/mantis/]]. + +===== 1.1. Access ===== +You don't have a bug tracker account, but if you wish to log or track tickets you will need an account as the anonymous user wont allow you to do this. \\ + +==== 1.1.1 Guest Account ==== +When you first navigate to the bug tracker you will be automatically logged on as an anonymous user. An anonymous user has view access to public projects and tickets only. + +==== 1.1.2 Create Your Own Account ==== +To create an account follow this [[https://nofusscomputing.com/mantis/signup_page.php|link]]. + +{{:public:help:mantis:mantislogon.png?nolink|The signup page}} + +To create a new account please follow the steps below: + - Fill in your username using format //firstname.lastname// + - Fill in your E-Mail address that you wish to receive notification's on + - Fill in the CAPTCHA box //(using the image beside the input box)// + - Click on sign up. + +You will be redirected to a new page and a confirmation email will be sent to you. To finalise the signup process please follow the instructions provided in the email. + +===== 1.2. Lost/Forgotten password ===== +You forgot your password? No Problems, [[https://nofusscomputing.com/mantis/lost_pwd_page.php|click Here]]. + +{{:public:help:mantis:mantisforgotpassword.png?nolink|Forgotten Password Page}} + +From the forgotten passwords page please follow the steps below to reset your password: + - Enter your username + - Enter in the password you use for the Bug Tracker + - Click Submit +Once form has been submitted, instructions will be printed on the screen stating what you need to complete the password reset process. + +===== 1.3. Login Form ===== +{{:public:help:mantis:mantislogonscreen.png?nolink|}} + +From the logon screen please follow the instructions below to logon + - Enter your username as set during account creation + - Enter your password + - Check this box to remember your logon details between browser sessions //You must have cookies enable to take advantage of this feature// + - Only allow your username to be used on this PC. //once you log out you will be able to use another PC// + - Click login, and [[02_browse|Browse the Bug Tracker]]. + +==== 1.3.1 Successful ==== + * You will be redirected to the start page of the ticket tracker, + +==== 1.3.2 Unsuccessful ==== + * An error message will be displayed. + +The **Save Login** checkbox is used to remember your logon, even if you close the browser. The next time the browser is opened you will be directly authenticated under your username, if you checked this field. __//Don't use this feature on a shared computer//__ \ No newline at end of file diff --git a/wiki/current/info/mantis/02_browse.txt b/wiki/current/info/mantis/02_browse.txt new file mode 100755 index 0000000..96ce199 --- /dev/null +++ b/wiki/current/info/mantis/02_browse.txt @@ -0,0 +1,36 @@ +====== 2. Browse the Bug Tracker ====== +After login you are redirected to the **My View** page. There are four parts to the page: + * Header + * Menu Bar + * Body + * Footer + +Each section of the page is described in further detail below. + +===== 2.1. Header ===== +The Header consists the Bug Tracker title, No Fuss Computing's own customized Mantis logo, the login information and the switch [[project]] select box. + +==== 2.1.1 Project Select Box ==== +This is where you select what project you would like to filter and display only those tickets. After you have selected the project, the page will automatically redirect. + +===== 2.2. Menu Bar ===== +The Menu Bar is how you navigate around the bug tracker and is comprised of the following links. + +==== 2.2.1 Description ==== +{{:public:help:mantis:mantismenubar.png?nolink|Bug Tracker Menu Bar}} + - My View + - View Issues + - Report Issue + - Change Log + - Road map + - My Account + - Logout + +==== 2.2.2 Ticket Jump Box ==== +Also included on the header bar is an input box. This input box is where you can put a ticket number in, once you enter a number press 'Enter'/'Click Jump' and you will be taken directly to that tickets detail page. + +===== 2.3. Body ===== +This section of the page is where the content of the site will be displayed, each time you click on a link within the Bug Tracker the body will update and change accordingly. + +===== 2.4. Footer ===== +The Footer begins after a horizontal rule and is composed of some info (copyright) on the left and the Mantis logo at right. \ No newline at end of file diff --git a/wiki/current/info/mantis/03_tickets.txt b/wiki/current/info/mantis/03_tickets.txt new file mode 100755 index 0000000..f82ef09 --- /dev/null +++ b/wiki/current/info/mantis/03_tickets.txt @@ -0,0 +1,108 @@ +====== 3. Support Tickets ====== +Support tickets are a way to enable you, the end user; to communicate with the developers or owners of a specific product. this method of communication will enable you to directly affect the product you are reporting on by filing bug tickets or feature requests.\\ +\\ +When you file a ticket on No Fuss Computing's Bug and Feature Tracker you will be directly communicating with the person who creates the product you are reporting on. + +===== 3.1. Reporting ===== +To report a bug, isssue, improvement or to request a feature please click on 'Report Issue' on the menu Bar. + +==== 3.1.1 Select a Project ==== +When you click this link, and if you haven't selected a project; you will be redirected to the 'Select Project' Page. +{{ :public:help:mantis:mantisreportselectproject.png?nolink |}}\\ + + - Select the project you wish to report on + - Click 'Select Project' + +If you check 'Make Default' every time you use the bug tracker you will not have to select a project. but if you wish to refer to other projects, you will have to manually select the project on the top right of the screen + +==== 3.1.2 Report Form ==== +You will be required to fill in the following form. More details on each of the fields are covered below. +{{ :public:help:mantis:mantisreport.png?nolink |Mantis Ticket Reporting}} + +=== 3.1.2.1 Category === +Category: Select the most appropriate category for the report. These categories are pre-defined by the administrator. If you are completely unsure then select "other" as a the category. + +=== 3.1.2.2 Reproducibility === +This is the key to being able to quickly fix a bug possible values are: + - Always + - Some times + - Random + - Have not tried + - Unable to reproduce + - N/A +If you are not reporting an issue then select N/A. + +=== 3.1.2.3 Severity === +This dictates how bad you think the problem is and genrally if correctly assessed will become the order in which it gets fixed. + +Severity levels are: + + - block - //prevents further work / progress from being made// + - crash - // crashes the application or OS// + - major - // major bug// + - minor - // minor bug// + - tweak - // needs tweaking (Graphic alignment, formatting, etc)// + - text - // error in the text, grammar, wording, etc// + - trivial - // being nit picky// + - feature - // request new feature// + +the severity level may be changed by a developer, this only occurs if you have been a little zealous with your grading of the problem. + +=== 3.1.2.4 Priority === +Priority is how quickly you think it should be fixed. The available priorities are: + - None + - Low + - Normal + - High + - Urgent + - Immediate +Yes, you may think a problem should be fixed straight away, but at the end of the day a developer needs to prioritize all of their work so your assessed priority may be down graded. + +=== 3.1.2.5 Summary === +A one line description of the problem. Please be helpful, and make it descriptive for the developer, meaningful titles get your issue looked at sooner. + +=== 3.1.2.6 Description === +A detailed description of the problem. As a rule of thumb you should always enter enough information for the developer to feel like he is in your shoes. a good way to be descriptive is to start of by answering the following two questions: + - What is the product doing that it should __not__ be doing? + - What is the product __not__ doing that it should be doing? + +Once you have answered those two questions, state what you were doing that led to the issue. Describe what you were doing, what you expected to happen, what should have happened, the error, setup and system settings, software version(s), and possible ideas and suspicions.\\ +\\ +** Feature Requests**\\ +If you wish to change something than the description you put here must be relatively descriptive covering What you want done, what you want to achieve and how you want it to look. __Please no 2000 page novels!!__ + +=== 3.1.2.7 Steps To Reproduce === +List the detailed steps to reproduce a problem. This is useful for bugs that take a while to show up or tricky cases. A developer will take an order of magnitude more time to fix a bug that is not easily reproducible. So, if at all possible go back and try to reproduce the bug.\\ +\\ +It would be best to use a bullet format like: + * Step 1 + * Step 2 + * Step 3 + +=== 3.1.2.8 Additional Information === +Any extra information that you didn’t put into the description goes here. This might be a dump of the error, a proposed fix, or anything that is related to, but not directly a part of the request. + +=== 3.1.2.9 Upload File === +If necessary then you can attach a document or any image like Screen Shoot of the bug. + +=== 3.1.2.10 View Status === +Allows You to set who can view it. Private: Only you and a developer can see it and public: anyone who has access to the project. + +=== 3.1.2.11 Submit Report === +After submit the report it will be filed with the other requests on the bug tracker; ready for a developer to review your request. + +On submission, a notification will be sent to the person responsible for the project. + +===== 3.2 Notification ===== +Whenever there is any update or change to a ticket you have filed you will receive notification via E-Mail. +notifications are on by default, if you do not wish to receive email about changes to your tick goto [[04_manage_account#notifications|Account Management]] + +===== 3.3. Monitor a Ticket ===== +Our bug tracker gives you the ability to monitor a ticket. if you monitor a ticket you will be notified every time there is a change to the ticket. //As long as you haven't changed your notification settings!// + +{{ :public:help:mantis:mantismonitor.png?nolink |}} + +To monitor please follow thes steps + - goto the ticket you wish to monitor + - put your user name in the 'users monitoring this issue box' + - click add, and your username should be displayed. \ No newline at end of file diff --git a/wiki/current/info/mantis/04_manage_account.txt b/wiki/current/info/mantis/04_manage_account.txt new file mode 100755 index 0000000..0249e51 --- /dev/null +++ b/wiki/current/info/mantis/04_manage_account.txt @@ -0,0 +1,38 @@ +====== 4. Manage Account ====== +This section of the bug tracker will allow you to change your E-Mail and password. It also has subsections to manage and change other preferences.\\ +\\ +Each section can be navigated to by clicking on the links in the upper right corner; the following sub-sections are available: + * My Account + * Preferences + * Profiles + +===== 4.1. Pages ===== + +==== 4.1.1 My Account ==== +This section gives you the ability to change your E-Mail address and password. within this section you also get a list of projects you have access to including the level of access. + +==== 4.1.2 Preferences ==== +Within this section you can customize the following preferences: + + - Default Project - //This is the project you are automatically logged into when you log into the bug tracker// + - Refresh Delay - //You can set the view bugs pages to refresh every X minutes. 0 means never refresh, The defeult is 30 minutes// + - Redirect Delay - //Each action page has a delay value that you can set. Minimum of 0// + - Email on New - //Email you if you are a Developer, Manager, or Administrator when a new bug report is filed.// + - Email on Assigned - //Email you when a bug you are attached to is set to assigned// + - Email on Feedback - //Email you when a bug you are attached to is set to feedback status// + - Email on Resolved - //Email you when a bug you are attached to is set to resolved status// + - Email on Closed - //Email you when a bug you are attached to is set to closed status// + - Email on Reopened - //Email you when a bug you are attached to is Reopened// + - Email on Bug note Added - //Email you when a bug you are attached to has a bug note added// + - Email on Status Change - //Email you when the status of a bug you are attached to is changed// + - Email on Priority Change - //Email you when the priority of a bug you are attached to is changed// + - Timezone - //the timezone your in, will enable the times on tickets to be displayed in your local timezone// + - Language - //Select your language// + +You can reset the defaults with the "Reset Prefs" button. The administrator sets the default values in the configuration file. + +==== 4.1.3 Profiles ==== +Here you can add new profiles. This is useful when you don't want to keep re-entering your system configuration in the Advanced Bug Reports. It allows for multiple bug reports for multiple system configurations. There is a "Description" field as a catchall for more details + +===== 4.2 Notifications ===== +All notifications from us come from our helpdesk and if it is from or bug tracker the name will be "NFC Bug and Feature Tracker". diff --git a/wiki/current/info/mantis/05_workflow_transitions.txt b/wiki/current/info/mantis/05_workflow_transitions.txt new file mode 100644 index 0000000..16518ef --- /dev/null +++ b/wiki/current/info/mantis/05_workflow_transitions.txt @@ -0,0 +1,109 @@ +====== 5. Ticket Workflow and Transitions ====== +The Management of tickets on our ticketing system is left to either an administrator, manager or developer. at each stage of the ticket being worked on the ticket status will be reflected to show what stage the ticket is at. + +===== 5.1 Status ===== +The status of a ticket is denoted on and publicly available to anyone who can view the ticket. The available status' for a ticket is as follows: + * New + * Feedback + * Acknowledged + * Confirmed + * Assigned + * Resolved + * Closed + +Each of the ticket status' will be explained further below. + +==== 5.1.1 New ==== +When a ticket is first created, it's status will be automatically set as 'New'. This status also reflects that the reporter has just left feedback, but only if the previous status was 'Feedback'. Normally, a ticket shouldn't remain marked as 'new' for too long; but that is dependant on a few factors. Being workload, or ticket priority. + +==== 5.1.2 Feedback ==== +A developer, Manager or administrator require feedback. there will always be a note added if this status is requested. on first instance the note left will denote who the feedback is required from. as soon as that person generally the ticket raiser leaves the feedback (Note) the ticket status will automatically change to 'New'. + +==== 5.1.3 Acknowledged ==== +A developer, Manager or administrator have acknowledged the ticket or feedback received. Also of note for this status. no one on the development team have attempted to reproduce this issue, if applicable. + +==== 5.1.4 Confirmed ==== +A developer, Manager or administrator have either confirmed this as an issue or are able to reproduce the cause. This status is optional and may not be used at all for the ticket workflow. + +==== 5.1.5 Assigned ==== +A developer, Manager or administrator have begun to work on a ticket. This status will always be assigned to a person on the development team, the actual person working on a resolution. the general workflow after this status is either, Acknowledged/Confirmed as applicable if the ticket is no longer being worked on or resolved. + +==== 5.1.6 Resolved ==== +The ticket has been resolved or deemed to be resolved by a developer, Manager or administrator. when a ticket is marked as resolved, it will have a designated resolution assigned by the developer, Manager or administrator as well. + +==== 5.1.7 Closed ==== +This status reflects that the issue is closed and no further action is required on it. + +===== 5.2 Workflow ===== +As each ticket is worked on it's status will updated to reflect what is happening in relation to the ticket. This reflection is done by adjusting the ticket status. the basic workflow of a ticket is as follows + + New -> Acknowledged -> Confirmed -> Assigned -> Resolved + +This basic workflow can change depending on what the requirements to the ticket are for instance, if a developer needs to ask a question, then the 'Feedback' status will be used which can add additional steps i.e. + + New -> Feedback -> New -> Acknowledged -> Confirmed -> Assigned -> Resolved. + +After a ticket has been assigned it's workflow can either go backwards or forwards. for instance, a ticket is assigned to developer A as he has begun working on it, Now if developer A can not continue to work on the ticket, they would return it to either, Acknowledged or confirmed as applicable. now if Developer B decides to work on this ticket he would assign it to himself. + + New -> Assigned -> Acknowledged -> Assigned -> Resolved. + +The workflow can spear off in many different directions, some status' can be or may be missed, but generally when this happens it is done as it may not be necessary to change to a certain status. i.e. ticket is new, developer notices that it is a small fix and can resolve the ticket straight away, so therefor would immediately resolve the ticket without following the basic workflow. + +There is however one exception, that being a ticket with a status of 'Feedback', which will always return to 'New' after the required person leaves feedback. when ever there is a change in status, there should always be notes to accompany them, depending on your level of access, unless you left the note you may not be able to view it if the note has been marked as private. + +==== 5.2.1 Transitions ==== +As per the workflows as denoted above the transitions between each status are as follows +^ Current Status ^ Next Available Status | +| NEW | acknowledged,feedback,confirmed,assigned,resolved | +| FEEDBACK | new,acknowledged,confirmed,assigned,resolved | +| ACKNOWLEDGED | confirmed,feedback,assigned,resolved | +| CONFIRMED | assigned,feedback,acknowledged,resolved | +| ASSIGNED | resolved,feedback,acknowledged,confirmed | +| RESOLVED | closed,feedback,assigned | +| CLOSED | feedback,assigned | + +==== 5.2.2 Thresholds ==== +All status' have permissions or access levels on who can change that status. Typically these thresholds are set at developer or higher. Feedback is the only status that can be changed by anyone else. The reported if required to leave feedback, on leaving a note in this status will automatically set the status back to new. + +===== 5.3 Resolution ===== +When ticket is marked as either resolved of closed there is a resolution field that is set as well. this resolution further denotes the resolution of the ticket. when the ticket is marked as resolved, a version should also be selected. This way the change log feature of the ticketing system will automagically record the changes for a particular version. The available resolutions are: + * open + * Fixed + * reopened + * unable to reproduce + * Not Fixable + * duplicate + * No change required + * Suspended + * Won't fix + +when a ticket is either closed or resolved one of these will be selected to denote the final resolution in relation to the ticket. + + +==== 5.3.1 Open ==== +Ticket is open, this should not be selected if the ticket is being resolved or closed. + +==== 5.3.2 Fixed ==== +The ticket is considered resolved with a devised fix. + +==== 5.3.3 reopened ==== +That the ticket has been reopened, this should not be used for a status of closed or resolved. + +==== 5.3.4 unable to reproduce ==== +A member of the development team can no reproduce your issue and is either closing or marking the ticket as resolved based on that. + +==== 5.3.5 Not Fixable ==== +The ticket issue can not be fixed. normally this resolution will only be used if the issue is outside of there control. + +==== 5.3.6 duplicate ==== +the ticket is a duplicate of another ticket. if this resolution is selected then the duplicate ticket number is to be entered in the applicable field (Applies to Development Team only) + +==== 5.3.7 No change required ==== +There is no action that the development team needs to implement. + +==== 5.3.8 Suspended ==== +There is no timeframe set for or if this ticket will be worked on. generally items that have been marked with this resolution are considered to be 'Wish list' items. + +==== 5.3.9 Won't fix ==== +Exactly as the resolution states. the development team will not be fixing the ticket. this could be for any number of reasons, a note will generally be added to support the reasons behind this resolution. + diff --git a/wiki/current/info/mantis/home.txt b/wiki/current/info/mantis/home.txt new file mode 100755 index 0000000..4b2b2ca --- /dev/null +++ b/wiki/current/info/mantis/home.txt @@ -0,0 +1,38 @@ +~~NOCACHE~~ +~~NOTOC~~ +{{ :public:logos:nfc_mantis_logo.png?nolink |}} +====== Bug and Feature Tracker User Manual ====== + +This Manual describes our bug and feature tracker, Mantis; and how you can view, report and monitor bugs and/or features. \\ +\\ +**Table of Contents:** + * [[01_access]] + * [[01_access#1.1. Access]] + * [[01_access#1.2. Lost/Forgotten password]] + * [[01_access#1.3. Login Form]] + * [[02_browse]] + * [[02_browse#2.1. Header]] + * [[02_browse#2.2. Menu Bar]] + * [[02_browse#2.3. Body]] + * [[02_browse#2.4. Footer]] + * [[03_tickets]] + * [[03_tickets#3.1. Reporting]] + * [[03_tickets#3.2. Notifications]] + * [[03_tickets#3.3. Monitor a Ticket]] + * [[04_manage_account]] + * [[04_manage_account#4.1. Pages]] + * [[04_manage_account#4.2 Notifications]] + * [[05_workflow_transitions]] + * [[05_workflow_transitions#5.1 Status]] + * [[05_workflow_transitions#5.2 Workflow]] + * [[05_workflow_transitions#5.3 Resolution]] + * [[Search]] + * [[Report]] + * [[Update]] + * [[Print]] + + + +If you identify any issues, inconsistencies or would like to suggest an improvement to this 'Bug and Feature Tracker Manual', Please open a Feature ticket and reference [[mantis>81|Feature Ticket #81]] as a parent to your ticket. + + \ No newline at end of file diff --git a/wiki/current/info/mdt/applications.txt b/wiki/current/info/mdt/applications.txt new file mode 100755 index 0000000..0b7e6a5 --- /dev/null +++ b/wiki/current/info/mdt/applications.txt @@ -0,0 +1,47 @@ +====== Applications ====== +return to [[home|Contents]] + +I not only use MDT to deploy applications during OS deployment but I also have a 'Post OS Install' task sequence to install applications as well. + +Application folders Layout is pretty straight forward. + * Client Software Suite - Standard Suite + * //All Freeware applications that I install is under this structure// + * Client Software Suite - Domain + * //Local Domain only Applications// + * Server Software Suite - Domain + * //Software for use on domain Servers// + +Each suite folder is setup as follows. +^ Folder ^ Description ^ +| Suite | Applications listed here are only Application Bundles. The dependent applications for these Application bundles are selected from the AppTree folder. //They are visible from the deployment wizard.// | +| Suite\AppTree | Applications here are 'Applications with Source files' these applications are contain the acutual installers for the application in question. //They are not visible from the deployment wizard.// | +| Suite\Archive | Applications here are old versions, //they are visible from the deployment wizard.// | + + +**Figure 1. AppTree Folder Structure** +{{ :public:help:mdt:mdtapptree.png?nolink |MDT AppTree Directory Structure}} Fig 1. This is where new applications are imported to they are imported as an application with source files.\\ +\\ + +**Figure 2. Suite Application bundles** +{{ :public:help:mdt:mdtapplications.png?nolink |MDT Suite Applications}} Fig 2. These applications are application bundles with the application under the app tree folder added as a dependency. + +===== Add New Application ===== +To add a new application the following process is followed. + - Import an application with source files into the AppTree Folder ensuring you hide it from the deployment wizard. + - Create an application Bundle under the Suite root folder and set its dependency to the application you wish to install, from the AppTree folder. + - if the application you wish to install has dependent applications, select the dependent application bundle from the suite root folder making sure it is set to install before the application that requires it does. + +===== Update an Application ===== + - Import an application with source files into the AppTree Folder ensuring you hide it from the deployment wizard. + - goto the application Bundle under the Suite root folder and set its dependency to the application you just added to the AppTree folder and remove the old version of that application. + - return to the AppTree folder and move the old app to the Archive directory making sure you 'uncheck' the 'hide from deployment wizard'. + +===== other useful info ===== + - utilize the uninstall key, within each application it will prevent the app from trying to install again. + +===== Reasoning ===== +This structure was adopted for the following reasons: + * Create Deployment media based on suites (Departments / Groups / ETC.) + * If you have mandatory applications in your config file providing you have used the Suit 'Application Bundle' you don't have to leave the GUI/Edit the config file to update the application. + * clarity + diff --git a/wiki/current/info/mdt/home.txt b/wiki/current/info/mdt/home.txt new file mode 100755 index 0000000..96ebe8e --- /dev/null +++ b/wiki/current/info/mdt/home.txt @@ -0,0 +1,27 @@ +====== My Microsoft Deployment Tool Kit Setup ====== +This information has been created as a record of how I do something, if you decide to follow anything within this set of pages and stuff up, your on your own!! + +I use Microsoft Deployment Tool Kit (MDT) to reduce the time it takes to install/update and to deploy a working Windows OS. The setup of MDT and time taken to test and get it right far outweighs deploying an OS by hand. Below you will find how I have setup my MDT structure and why. Most of my setup has been chopped and changed due to trial and error and to ease the burden. + +My goals for MDT are: + * Deploy any Windows OS quickly + * Easily update Applications / Drivers / Operating System + * make deployment media that could be used by a less savvy computer user. + +I currently use MDT to Deploy windows on my own network (Active Directory Domain), Stand alone machines and family and friends computers. I also use MDT to install applications and force a computer to update using my WSUS Server. + +===== Contents ===== +these sub-pages define each section of my setup a little further + - [[applications]] + - [[operating_system]] + - [[out_of_box_drivers]] + - [[packages]] + - [[task_sequences]] + - [[config_file]] + - [[customizations]] + + + +===== Folder Layout ===== + +{{:public:help:mdt:mdtstructure.png?nolink |MDT Folder Structure}} \ No newline at end of file diff --git a/wiki/current/projects/application_manager/administration_documentation/app_config_files/__template.txt b/wiki/current/projects/application_manager/administration_documentation/app_config_files/__template.txt new file mode 100755 index 0000000..6ec144d --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/app_config_files/__template.txt @@ -0,0 +1,9 @@ +====== ====== +This file is used by the [[public:projects:application_manager:home|Application Manager]] when installing Mozilla Firefox. + +===== Download ===== + + + + + diff --git a/wiki/current/projects/application_manager/administration_documentation/app_config_files/mozilla_cfg.txt b/wiki/current/projects/application_manager/administration_documentation/app_config_files/mozilla_cfg.txt new file mode 100755 index 0000000..6fbdce1 --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/app_config_files/mozilla_cfg.txt @@ -0,0 +1,52 @@ +====== Mozilla Firefox - Mozilla.cfg ====== +This file is used by the [[public:projects:application_manager:home|Application Manager]] when installing Mozilla Firefox. + +===== Download ===== + + +// +try { +lockPref("app.update.enabled", false); +lockPref("app.update.autoUpdateEnabled", false); +lockPref("extensions.update.enabled", true); +lockPref("extensions.update.autoUpdateEnabled", false); + +lockPref("dwhelper.conversion-enabled", false); +lockPref("dwhelper.conversion-was-enabled", true); +lockPref("dwhelper.convert-free", true); +lockPref("dwhelper.first-time", false); +lockPref("dwhelper.mediaweight", "1024"); +lockPref("dwhelper.menu-expiration", 60); +lockPref("dwhelper.passwords-migrated", true); +lockPref("dwhelper.storagedirectory", "h:\\downloads"); + +lockPref("security.enable_ssl3", true); +lockPref("security.enable_tls", true); + +// Clear History when firefox closed +lockPref("privacy.sanitize.sanitizeOnShutdown", true); +lockPref("privacy.sanitize.promptOnSanitize", false); +lockPref("privacy.item.downloads", true); +lockPref("privacy.item.cache", true); +lockPref("privacy.item.cookies", true); +lockPref("privacy.item.sessions", true); +lockPref("privacy.item.history", false); + +lockPref("browser.startup.homepage", "http://nofusscomputing.com"); + +//disable firefox dns cache +lockPref("network.dnsCacheExpiration", 0); + +// Change default paper size from US-Letter to A4: +lockPref("print.postscript.paper_size", "A4"); + +// added to remove browser rights +lockPref("browser.rights.3.shown", true); +lockPref("browser.download.panel.firstSessionCompleted", true); + + +} catch(e) { +displayError("lockedPref", e); +} + + diff --git a/wiki/current/projects/application_manager/administration_documentation/app_config_files/mozilla_local_settings_js.txt b/wiki/current/projects/application_manager/administration_documentation/app_config_files/mozilla_local_settings_js.txt new file mode 100755 index 0000000..426bbe2 --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/app_config_files/mozilla_local_settings_js.txt @@ -0,0 +1,10 @@ +====== Mozilla Firefox - Local-Settings.js ====== +This file is used by the [[public:projects:application_manager:home|Application Manager]] when installing Mozilla Firefox. + +===== Download ===== + + +pref("general.config.obscure_value", 0); +pref("general.config.filename", "mozilla.cfg"); + + diff --git a/wiki/current/projects/application_manager/administration_documentation/application_xml_file.txt b/wiki/current/projects/application_manager/administration_documentation/application_xml_file.txt new file mode 100755 index 0000000..f1a170f --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/application_xml_file.txt @@ -0,0 +1,151 @@ +====== Application.XML ====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | [[public:projects:application_manager:administration_documentation:home]] | + + +This file is used by the Application Manager to either install or uninstall an application including any custom tasks that are required to be run. + + +===== Packages ===== +This is the root XML Node. this tells the Application Manager that the XML contains one or more Application Packages. This node must contain at least one 'ApplicationPackage' Node but can contain as many as you would like. + +===== ApplicationPackage ===== +This node is sub node of 'Packages' but the root node for the application being processed. This node also has sub-nodes that are essentially tasks. This node also has attributes that pertinent to the application being installed. + +==== Attributes ==== + +^ Attribute Name ^ Type ^ Valid Values ^ Max Length ^ Description ^ +| Arch | String | AMD64\\ Any\\ x86 | 5 | Used to determine what processor architecture to process this application on. | +| ID | String | ASCII Chars | 5 | This is a unique value assigned to each application. if you use a SHA256 then our database will be queried for the application details. | +| Name | String | ASCII Chars | 255 | The value used here is what is presented to the end user in the log file. | +| Version | Float | Major.Minor[.Build[.Revision]]\\ i.e.\\ 1.2\\ 1.2.3\\ 1.2.3.4 | | This attribute contains the version to be installed. A valid Value is the version that is found in the registry after it has been installed. | +| Reboot | Boolean | TRUE\\ FALSE | 5 | Regardless for what exit codes tell the Application manager to do if this is set to true then a reboot will occur after installation. | +| [Uninstall] | String | ASCII Chars | | This value contains the Registry Key Name that will be used to determine if the Application is installed. | +| //Values in '[ ]' are optional// ||||| + +===== FileDetails ===== +This node contains the download information for the application installer. There must be a minimum of one Download sub-node. + +==== Download Node Attributes ==== +^ Attribute Name ^ Type ^ Valid Values ^ Max Length ^ Description ^ +| Arch | String | AMD64\\ Any\\ x86 | 5 | Processor Architecture to run this download. | +| Extension | String | ASCII | 3 | File extension of the file being downloaded. | +| SHA1 | HEX String | ASCII | 40 | This value indicates what the Hash of the download should be. There must be at least one hash type attribute. if two hash attributes are added the order of precedence is SHA256 followed by SHA1. | +| SHA256 | HEX String | ASCII | 64 |::: | +| URL | String | ASCII | | File Download URL. must contain '%%http://%%' or '%%https://%%' | +| [Path] | String | ASCII | | SubPath for download. //(Dependant Downloads ONLY!)//((:TODO: Confirm this is optional)) | +| //Values in '[ ]' are optional// ||||| + +===== Dependencies ===== +Dependencies are required for this application to install correctly. the dependencies can be another application or an additional file that may be needed, i.e. configuration file, addon etc. + +==== Application Node Attributes ==== +^ Attribute Name ^ Type ^ Valid Values ^ Max Length ^ Description ^ +| Arch | String | AMD64\\ Any\\ x86 | 5 | The architecture of the software to install. | +| ID | HEX String | ASCII | 64 | The Unique ID of the application you would like installed first. | +| Name | String | ASCII | | This is the name of the dependant application, this value will be used in the log files. | +| //Both attributes are required // ||||| + +==== Download Node Attributes ==== +The download node attributes are the same as the 'filedetails' [[#Download Node Attributes|download attributes]]. + +===== Install ===== +This Node contains the install command, Installer exit code, checks and what tasks should be run when the application is installed. + +^ Attribute Name ^ Type ^ Valid Values ^ Max Length ^ Description ^ +| Command | String | ASCII | | The command to start the installer | +| Switches | String | ASCII | | The switches required for the installer. Namely the silent install switches. | +| //**These attributes may not available your [[public:projects:application_manager:features|version]].** Both attributes are required // ||||| + +==== Exit Code === +^ Attribute Name ^ Type ^ Valid Values ^ Max Length ^ Description ^ +| Code | Integer | ASCII | | the exit code that the installer should have for successful completion. | +| [Reboot] | Boolean | TRUE\\ FALSE | 5 | This optional value tells the plugin manager whether it should reboot if this exit code is returned. | +| //Values in '[ ]' are optional// ||||| + + +==== Check ==== +^ Attribute Name ^ Type ^ Valid Values ^ Max Length ^ Description ^^ +| Arch | String | AMD64\\ Any\\ x86 | 5 | Processor Architecture that this check should run on. || +| Type | String | File\\ Registry | 8 | The type of check that should be run. || +|::: ^ Check Type ^ Attribute Name ^ Type ^ Valid Value / Max Length ^ Description ^ +|::: | File | Logic | String | Hash | Check File Hash. if this attribute is included than either MD5, SHA1 or SHA256 attributes also need to be included. | +|::: |::: | MD5 | HEX String | 32 | MD5 of file of file to check. | +|::: |::: | SHA1 |::: | 40 | SHA1 of file of file to check. | +|::: |::: | SHA256 |::: | 64 | SHA256 of file of file to check. | +|::: | Registry | Logic | String | KeyValue | The type of registry check to conduct. | +|::: |::: | Key | String | ASCII | The Registry key to check. | +|::: |::: | SubKey | String | ASCII | ??? | +|::: |::: | Value | String | ASCII | The Value of what the Registry Key should equal. | +| //Values in '[ ]' are optional// |||||| + +==== Task ==== +^ Attribute Name ^ Type ^ Valid Values ^ Max Length ^ Description ^^ +| Arch | String | AMD64\\ Any\\ x86 | 5 | Processor Architecture that this check should run on. || +| Description | String | ASCII | 255 | the description of what the task is going to do. || +| Type | String | Command\\ Copy\\ Delete\\ Move\\ Registry | | The type of check that should be run. || +|::: ^ Check Type ^ Attribute Name ^ Type ^ Valid Value / Max Length ^ Description ^ +|::: |Command | Command | String | | Command to run. | +|::: |::: | Switches |::: | | Switches to run command, namely for silent running. | +|::: |::: | ExitCode | Integer | | The exit code that should be returned from the application. | +|::: | Copy | Source | String | 255 | Source Location. | +|::: |::: | Destination |::: | 255 | Destination Location. | +|::: |::: | SHA256 |::: | | The hash of the file to be copied. | +|::: | Delete | Source | String | 255 | The File or Directory to Delete. | +|::: |::: | PartB |::: | | ??? is the required... | +|::: | Move | PartA | String | | Source Location. | +|::: |::: | PartB |::: | | Destination Location. | +|::: | Registry | Key | String | ASCII/? | Registry Hive Key. | +|::: |::: | SubKey |::: | ASCII/? | ??? | +|::: |::: | Value |::: | ASCII/? | Registry Value to set. | +| //Values in '[ ]' are optional// |||||| +===== Uninstall ===== + + + + +====== Example Download ====== + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wiki/current/projects/application_manager/administration_documentation/available_applications_xml_file.txt b/wiki/current/projects/application_manager/administration_documentation/available_applications_xml_file.txt new file mode 100755 index 0000000..086db34 --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/available_applications_xml_file.txt @@ -0,0 +1,43 @@ +====== Available Applications XML File ====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | [[public:projects:application_manager:administration_documentation:home]] | + +This file is used by the Application Manager to display a list of available applications. + +===== ApplicationPackage ===== +This node is sub node of 'Packages' but the root node for the application available for install. This node has no sub-nodes. This node contains attributes that pertinent to the application that are displayed within the GUI. There must be a minimum of one node but can contain as many as you wish. + + +==== Attributes ==== + +^ Attribute Name ^ Type ^ Valid Values ^ Max Length ^ Description ^ +| Arch | String | AMD64\\ Any\\ x86 | 5 | Used to determine what processor architecture to process this application on. | +| Category | String | ??? | | What category the application will be displayed under. | +| [Logo] | String | ??? | | The image name for the Application, inc file extension. | +| ID | String | ASCII Chars | 5 | This is a unique value assigned to each application. if you use a SHA256 then our database will be queried for the application details. | +| Name | String | ASCII Chars | 255 | The value used here is what is presented to the end user in the log file. | +| [Description] | String | ASCII Chars | ???? | The is used to display the description on the GUI. | +| Version | Float | Major.Minor[.Build[.Revision]]\\ i.e.\\ 1.2\\ 1.2.3\\ 1.2.3.4 | | This attribute contains the version to be installed. A valid Value is the version that is found in the registry after it has been installed. | +| Reboot | Boolean | TRUE\\ FALSE | 5 | Regardless for what exit codes tell the Application manager to do if this is set to true then a reboot will occur after installation. | +| [Uninstall] | String | ASCII Chars | | This value contains the Registry Key Name that will be used to determine if the Application is installed. | +| [InstallerSize] | Sting | ASCII Chars | ??? | The download size of the installer. | +| //Values in '[ ]' are optional// ||||| + + +====== Example Download ====== + + + + + + + \ No newline at end of file diff --git a/wiki/current/projects/application_manager/administration_documentation/configuration.txt b/wiki/current/projects/application_manager/administration_documentation/configuration.txt new file mode 100755 index 0000000..c8ce141 --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/configuration.txt @@ -0,0 +1,59 @@ +====== Configuration ====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | [[public:projects:application_manager:administration_documentation:home]] | + + +The configuration/custom settings for the Application Manager are saved to the windows registry. The settings that are saved there are done so by using the GUI. Any setting an administrator places there will also be utilised by the Application Manager, as long as they are valid. + +===== Settings ===== +All Settings for the Application Manager are saved under the root location of //HKLM\SOFTWARE\NoFussComputing\SCMS\Plugins\ApplicationManager// within the Windows Registry. There are two subkeys available for use under this path and they are used for individual applications settings and they are: + + * //HKLM\SOFTWARE\NoFussComputing\SCMS\Plugins\ApplicationManager\Managed\[ApplicationID]// - Individual Application Settings for Managed Applications + * //HKLM\SOFTWARE\NoFussComputing\SCMS\Plugins\ApplicationManager\User\[ApplicationID]// - Individual Application Settings for Custom Applications :TODO: Confirm this has custom settings + +Each application is a sub-key based on its [[.:application_xml_file#applicationpackage|Application ID]] under the root settings location. This Sub-Key name is derived by our system and by default will be a SHA256 of the Application. You can locate the package ID from our [[NFC>database/computer/applications/home|Application Database]]((Still Under development)) + + +All Application Manager settings can be exported to a registry file by using the following command + reg EXPORT HKLM\SOFTWARE\NoFussComputing\SCMS\Plugins\ApplicationManager [PathtoFile]\ApplicationManager.reg + +Possible Reasons to export: + * Backup of settings/applications to manage + * to Import to a different machine to maintain consistent settings and managed applications + +Import with + reg EXPORT HKLM\SOFTWARE\NoFussComputing\SCMS\Plugins\ApplicationManager [PathtoFile]\ApplicationManager.reg + + +==== Application Manager Settings ==== +All Application Manager settings are saved within the same location within the Windows Registry under the HKLM hive. + + * //HKLM\SOFTWARE\NoFussComputing\SCMS\Plugins\ApplicationManager// + +These settings are 'REG_SZ' values and can be safely exported and re-imported without affecting the performance of the Application Manager. + +=== Settings === +By default, there are no settings placed in the registry by the Application Manager. The only time settings are placed there, is when a end user of the Application Manager customizes the setting within the GUI. + +^ Setting ^ Type ^ Value(s) ^ Max Length ^ Default Value ^ Description ^ +| MinDriveSpace | Integer | # | 2 | 5 | This is the amount in 'GigaBytes' of hard drive space to set aside as system reserved space. | +| OverRideMinDriveSpace | Boolean | True | 4 | //Null// | Override the the default of 5GB drive space reserved with the value in 'MinDriveSpace' | + + +Using the setting 'OverRideMinDriveSpace' can have dire consequences for system stability, __ONLY__ use this setting if you know what you are doing. + + + +==== Individual Application Install Settings ==== +Individual Applications are saved under the Application Package Key as a //REG_SZ// String Value. By default if the Setting Does not exist the Application Manager will choose the default action applicable to that setting. +^ Name ^ Type ^ Value(s) ^ Default Action ^ Description ^ +| Architecture | String | AMD64\\ x86 | Install Architecture that matches OS. | The processor architecture of the software to install. | +| Update | String | False | Update to new version when it becomes available. | Tells the Application Manager not to update the application. | +| Version | String | 1.2//[.3[.4]]// | Install Current and newest supported version | The version of the software to install. | +| //items enclosed with '[ ]' are optional.// |||| + + + + + +All settings that the Application Manager uses are saved to the registry under //HKLM\SOFTWARE\NoFussComputing\SCMS\Plugins\ApplicationManager.// diff --git a/wiki/current/projects/application_manager/administration_documentation/home.txt b/wiki/current/projects/application_manager/administration_documentation/home.txt new file mode 100755 index 0000000..5577109 --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/home.txt @@ -0,0 +1,31 @@ +====== Administration Documentation ====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | + + +Not only is the Application Manager a simple and easy to use application for those with a lack of computing knowledge, but we have added lots of [[..:features|features]] for the more savvy computer user as well. This section of the documentation covers those extra or more advanced [[..:features|features]]. + + +===== Table of Contents ===== + * [[.configuration]] + * [[.application_xml_file]] + * [[.available_applications_xml_file]] + * [[.launch_managed_application_installer]] :TODO: + * [[.notes]] + * [[.logging]] :TODO: Create the rest of these docs. +\\ +\\ +\\ +===== Stuff that is likely to disappear from this page ===== + +{{pagequery>@. *; +label=Sub Pages; +limit=80; +sort=pageid:asc; +name; +proper; +cols=1; +showstart; +hidejump; +hidemsg; +display={title} }} \ No newline at end of file diff --git a/wiki/current/projects/application_manager/administration_documentation/how_to/managed_installation_and_deployment.txt b/wiki/current/projects/application_manager/administration_documentation/how_to/managed_installation_and_deployment.txt new file mode 100755 index 0000000..2b812ae --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/how_to/managed_installation_and_deployment.txt @@ -0,0 +1,63 @@ +====== Managed Installation ====== + + + +This file may download with a .txt file extension. Please adjust the file extension so that it reflects the file you are downloading. + +@echo off +REM ----------------------------------------------------------------------- +REM Application Manager Silent Installer +REM and +REM Installation of Managed Applications +REM +REM Version: 2015-06-28 +REM There is no licence available for the script, use at will!! +REM http://nofusscomputing.com/wiki/public/projects/application_manager/administration_documentation/how_to/managed_installation_and_deployment +REM ----------------------------------------------------------------------- +echo. +echo. +echo ******************************************************* +echo. +echo Installing SCMS +echo. +echo ******************************************************* +echo. +echo Please Wait...... +REM Change these Filename's (After the equal sign) to match the file name of the installer, and registry settings to import. +SET SCMSFilename=SCMS.msi +SET RegFileName=ExportedApplicationManagerConfiguration.reg + + +IF %PROCESSOR_ARCHITECTURE%==x86 SET ProgPath=Program Files +IF %PROCESSOR_ARCHITECTURE%==AMD64 SET ProgPath=Program Files (x86) + +msiexec /i "%~dp0%SCMSFilename%" /passive /NOREBOOT + +if %ERRORLEVEL%== 0 GOTO ImportRegistry + +REM Application failed to install, exit script and pass error to launching process. +GOTO ErrorEnd + +:ImportRegistry + +reg IMPORT %dp0%RegFileName% + +if %ERRORLEVEL%== 0 GOTO LaunchInstaller + +REM Application settings import failed, exit script and pass error to launching process. +GOTO ErrorEnd + +:LaunchInstaller +start /wait "C:\%SOEProgPath%\NoFussComputing\SCMS\SOETray.exe" InstallManagedApplications + + + +REM Exit script with ERRORLEVEL 0 +exit + +:ErrorEnd +exit %ERRORLEVEL% + + + + diff --git a/wiki/current/projects/application_manager/administration_documentation/launch_managed_application_installer.txt b/wiki/current/projects/application_manager/administration_documentation/launch_managed_application_installer.txt new file mode 100755 index 0000000..8a80d01 --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/launch_managed_application_installer.txt @@ -0,0 +1,51 @@ +====== Application Manager - Launching ====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | [[public:projects:application_manager:administration_documentation:home]] | + +The Application manager shortcut is located in the start menu under "Utilities->Application Manager" Launching the Application Manager without administrative permissions will give you read access to the interface. If opened with Administrative permissions you will have full access to the Application Manager features. + +===== Switches ===== + +==== Application Manager Interface ==== +To start the Application Manager from the command line use the following command: + + [SCMS Install Path]\soetray.exe ApplicationManager + +Using the same command within a shortcut will enable you to launch the Application Manager as well. + + +==== Managed Application Installer ==== +You can manually launch the application installer from the command line to do so run: + + [SCMS Install Path]\soetray.exe InstallManagedApplications + + +Use this option to launch the installer and display the Desktop notification panel. this switch does not have to be launched with administrative permissions, but if it is and the Worker Service has not been started it will attempt to start it. If launched without administrative permissions the normal install process will be run, as long as the worker service has been started((Automatically starts when windows boots up)). + +**NO GUI Option with exit code** + + [SCMS Install Path]\soetray.exe InstallManagedApplications NoGUI + +**NOTE:** //This switch must be launched with administrative permissioins, without it, the application will __NOT__ launch and will return an [[public:projects:scms:command_line|Error]]// This switch would be used if you don't want to display a GUI + + + +The normal [[public:projects:application_manager:administration_documentation:logging|logging feature]] available during software install, is also utilised with this switch. + +==== Usage scenarios ==== +As long as you launch this switch with administrative permissions you are only limited by your imagination. Possible usage scenarios include: + * part of a task sequence from MDT/SCCM + * startup script + * psexec to remote computer that has SCMS installed + * During user logon as a logon script + +==== TODO ==== +:TODO: + * what licence is this feature avail in. + * explain about log file + * + + + + + \ No newline at end of file diff --git a/wiki/current/projects/application_manager/administration_documentation/logging.txt b/wiki/current/projects/application_manager/administration_documentation/logging.txt new file mode 100755 index 0000000..492aad2 --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/logging.txt @@ -0,0 +1,20 @@ +====== Logging ====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | [[public:projects:application_manager:administration_documentation:home]] | + +:TODO: Fix these docs + +The SCMS logs directly to the Event log under the application Log 'SCMS' + +===== Error Numbers ===== +The error numbers for the logging derive from the severity levels as defined in [[https://tools.ietf.org/html/rfc5424| RFC5424]]. this Enables easy identification of the output of the logging entry. + + +[[public:projects:scms:logging]] + +Session Log +C:\Windows\Temp\ + + +Application Log +C:\Program Data\NoFussComputing\ApplicationManager\ diff --git a/wiki/current/projects/application_manager/administration_documentation/notes.txt b/wiki/current/projects/application_manager/administration_documentation/notes.txt new file mode 100755 index 0000000..a0aa6cd --- /dev/null +++ b/wiki/current/projects/application_manager/administration_documentation/notes.txt @@ -0,0 +1,16 @@ +====== Application Manager - Notes====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | [[public:projects:application_manager:administration_documentation:home]] | + +:TODO: write this documentation better. + +Other pages that are WIP\\ + + * [[.how_to/managed_installation_and_deployment]] + + + +===== Notes ===== +items in this section need to be added to the documentation. + + - Adding Images: PNG32 file type with a transparent background. Canvas size is 120x120px and image is 110x110px diff --git a/wiki/current/projects/application_manager/features.txt b/wiki/current/projects/application_manager/features.txt new file mode 100755 index 0000000..0ed6e33 --- /dev/null +++ b/wiki/current/projects/application_manager/features.txt @@ -0,0 +1,32 @@ +====== Release Features ====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | [[public:projects:application_manager:administration_documentation:home]] | + +This page will eventually contain what features will be available in the releases. + + +===== Home ===== +The home version is designed to be easy to use and to meet a majority of the requirements a home user would need. +==== Features ==== + * Install application in just a few clicks, + * Automatically deploys software + * Removes crap/bloat ware((Yet to be implemented)) + +===== Professional ===== +:TODO: **This version is yet to be created.** The Professional Version is designed to have all of the bells and whistles. This version will not only enable you to have all of the same features as a home user but offer centralized management and more customizations. + +==== Features ==== + * [[public:projects:application_manager:administration_documentation:launch_managed_application_installer#Managed Application Installer|Launch Installer from Command Line]] + +===== Wishlist ===== + + * Central management of all clients + * auto updating of software + * write your own Deployable Software Package + * Deploy OS with it + * USMT Package + * Filter list by searching + * integrate into Active Directory Sites and services. + * Keep track of what users download + * tell users the approx install time + * diff --git a/wiki/current/projects/application_manager/home.txt b/wiki/current/projects/application_manager/home.txt new file mode 100755 index 0000000..9e5a53f --- /dev/null +++ b/wiki/current/projects/application_manager/home.txt @@ -0,0 +1,25 @@ +====== Application Manager ====== + +This Application is still under development. The documentation and or any information you find pertaining to this product may be different from the final release. + +//GOAL: Provide a solution for end users to easily install software on their computer and keep it up to date, regardless of their computing experience.// + +The Application Manager has been designed as a point and click solution to install software on your computer. This point and click is so simple your grandma could use it. There are only two steps to install software + - Select the software you would like to install, and + - Click //'install'//. + +As soon as you click install the Application Manager Confirms the software is not already installed, if not; downloads the application installer including any dependencies, installs the application, confirms the application installed and runs any additional tasks. All of this in the background __//without any user intervention.//__ Please check out our [[.:features|features]] page for more information. + + +To make life easier and a little more logical we have broken our documentation up in to two sections. + * [[public:projects:application_manager:administration_documentation:home]], for those who want to get their hands dirty. + * [[public:projects:application_manager:user_documentation:home]], how to use the interface and application in general. + + +Useful Links + * [[NFC>mantis/set_project.php?project_id=48;49|Bug and Feature Tracker]], Request a feature or notify us of a bug. + * [[NFC>mantis/roadmap_page.php?project_id=49|Roadmap]], see what we are about to implement + * [[NFC>mantis/changelog_page.php?project_id=49|Changemap]], see what we have implemented. +===== Management Interface ===== +{{ :public:projects:application_manager:management_interface.png?nolink |No Fuss Computing's Application Manager}} + diff --git a/wiki/current/projects/application_manager/user_documentation/application_categories.txt b/wiki/current/projects/application_manager/user_documentation/application_categories.txt new file mode 100755 index 0000000..82cd885 --- /dev/null +++ b/wiki/current/projects/application_manager/user_documentation/application_categories.txt @@ -0,0 +1,21 @@ +====== Software Categories ====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | [[public:projects:application_manager:administration_documentation:home]] | + + +Each Software package has been arranged into a category. Below you find all of the categories we use including a short description of each. + + +^ Image ^ Name ^ Description | +| {{:public:projects:application_manager:icons:compress.png?nolink|}} | Compress | Software that offers file archiving i.e. .zip, ,7z, .gz etc. | +| {{:public:projects:application_manager:icons:null.png?nolink|}} | Communication | Communication software covers anything that would be used to offer voice or video communication with another person, i.e chat program | +| {{:public:projects:application_manager:icons:developer.png?nolink|}} | Developer | Developer Tools. | +| {{:public:projects:application_manager:icons:driver.png?nolink|}} | Driver | System drivers. | +| {{:public:projects:application_manager:icons:null.png?nolink|}} | E-Mail | E-Mail Applications. | +| {{:public:projects:application_manager:icons:image.png?nolink|}} | Image | Image Editing, manipulation Applications. | +| {{:public:projects:application_manager:icons:multimedia.png?nolink|}} | Multimedia | Multimedia Applications, including viewing, editing and processing. | +| {{:public:projects:application_manager:icons:null.png?nolink|}} | Null | this is a placeholder category, if an application shows under this category, the creator has made a typo in the [[..:administration_documentation:application_xml_file#ApplicationPackage|application.xml]]. | +| {{:public:projects:application_manager:icons:office.png?nolink|}} | Office | Document editing/authoring applications. | +| {{:public:projects:application_manager:icons:runtime.png?nolink|}} | Runtime | Run Time Environments, i.e. browser plugin, IML applications. | +| {{:public:projects:application_manager:icons:utility.png?nolink|}} | Utility | System utility or administration tools. | +| {{:public:projects:application_manager:icons:webbrowser.png?nolink|}} | Web Browser | Web browsing applications. | \ No newline at end of file diff --git a/wiki/current/projects/application_manager/user_documentation/home.txt b/wiki/current/projects/application_manager/user_documentation/home.txt new file mode 100755 index 0000000..f3b1ba7 --- /dev/null +++ b/wiki/current/projects/application_manager/user_documentation/home.txt @@ -0,0 +1,23 @@ +====== User Documentation ====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | [[public:projects:application_manager:administration_documentation:home]] | + + +===== Table of Contents ===== + + * [[.:application_categories]] + * [[..:features]] + * [[.:interface]] + +===== Random stuff that will probably disappear from the page ===== +{{pagequery>@. *; +label=Sub Pages; +limit=80; +sort=pageid:asc; +name; +proper; +cols=1; +showstart; +hidejump; +hidemsg; +display={title} }} \ No newline at end of file diff --git a/wiki/current/projects/application_manager/user_documentation/interface.txt b/wiki/current/projects/application_manager/user_documentation/interface.txt new file mode 100755 index 0000000..e9d9e24 --- /dev/null +++ b/wiki/current/projects/application_manager/user_documentation/interface.txt @@ -0,0 +1,14 @@ +====== User Interface ====== + +| [[public:projects:application_manager:user_documentation:home]] | [[public:projects:application_manager:home| Application Manager Home]] | [[public:projects:application_manager:administration_documentation:home]] | + + +:TODO: Fix up this page + + +==== Installed Status ==== +^ Colour ^ Description ^ +| Green | Application is not installed. | +| Yellow | User does not have access to view. | +| Orange | No uninstall information was provided within the [[public:projects:application_manager:administration_documentation:application_xml_file#Attributes|Application Configuration file]], or the uninstall information was left blank. | +| Red | Not Installed | diff --git a/wiki/current/projects/beta_tester.txt b/wiki/current/projects/beta_tester.txt new file mode 100644 index 0000000..6bd59f2 --- /dev/null +++ b/wiki/current/projects/beta_tester.txt @@ -0,0 +1,70 @@ +====== Policy - Application Beta Tester ====== +As an application BETA tester for No Fuss Computing (NFC) you will have access to the new features of our software as part of the program. These features may or may not make part of the end product, as your responsibility is to test this/these new features for but not limited to viability, usability and functionality. When ever a new feature is created and/or released you will be notified so you may test as required/instructed. + + + + +===== Security and Privacy===== +Our Privacy policy is also applicable to you as a beta tester, please refer to them in our [[#Useful Links|Useful Links]] Section. The Privacy Policy may change from time to time, it remains your responsibility to keep informed of its contents. + +All software installers and application files are signed and branded by us. This enables you to confirm that it was us, who have released it. For more information please take a look at our [[public/help/nfc_software|Software Branding page]] + + +=====Installation===== +Before the commencement of installing our software I will need to know your Windows flavor and architecture (Yes, it's windows only software). It would also be preferable to know how often you use your computer and how often it is shutdown/rebooted. When it is time to install or reinstall I will provide you with a link for this application. you will require administrative permissions to install this application. + +==== SCMS Plugin Manager ==== + To install the [[public/projects/scms/home|SCMS Plugin Manager]], just double click and leave all settings as default in the installer. The app will install to C:\Program Files\NoFussComputing\SCMS\ (Program Files x86) on a AMD64. + + The files inside the directory should be + - scms.dll, + - SOETray.exe (a tray application) + - SCMSService.exe (Background Service that does all of the tasks.) + + +All of these files should be signed to confirm right click the file and open properties and there should be a digital signatures tab, The name of the Signer or certificate provider should contain 'NFC Software Department' + + + + After install you may also notice there is an additional log within event viewer called 'SCMS', this is where our application logs info to. + +===== Your Responsibilities ===== + +==== Information Required ==== +To partake as a BETA tester for NFC, I may from time to time require additional information from you. Any additional information required will be requested from us and contain the reason for this additional information. +As a minimum and prior to you commencement as a BETA tester I will require the following information: + * PCID + * //(the PCID is generated from the app itself and can be found in the tray icon by right click it (spanner and orange+grey screw driver icon) and click about, the PCID is on the splash window, I should only need the first 8 and last 8 hex digits to marry your PC to the logs and add your PC to the beta testers group.)// + +==== Registration ==== +You will be required to be registered on our Community Forum and our Bug and Feature tracker. The registration process for both areas of the site is quite simple and follows a simple methodology of "follow the bouncing ball" + +Click the relevant name to register you account. [[nfc>community/ucp.php?mode=register|Community Forum]] and [[nfc>mantis/signup_page.php|NFC Bug and Feature Tracker]] for their respective registration pages. + +==== Reporting ==== + If you identify any issues with our software you will be required to report them via our [[nfc>mantis/|bug and feature tracker]]. Any responses required by us will need to be answered within a suitable time frame, approx 24hrs. You can also request additional features be added to our software on the bug and feature tracker as well. There also maybe times when we require you to do additional things that we haven't or wont place in our software, these should be few and far between. also if we require you to send any files (Windows Error Reports, Crash dumps) these will need to be sent to helpdesk email address only. + +To locate the windows error reports, please navigate to [[public/help/windows_error_reports|Windows Error Reports]] for more info. + + For an application crash, in the error box that pops up, within that window the location of the dmp and xml file will be provided, that you will need to send through. + +===== Summary ===== + Hopefully and I say this lightly, 99% of the time you won't even notice this application on your computer. This part of the application is just the plugin manager and after a bit more testing I will begin to develop the plugins, this is where you can start to reap the rewards of installing my software and being a beta tester. If you didn't already know I am a single person not an entire organization with endless resources, to that end and around my day job and family life, I work as much a possible to make your computing experience with us a less than painful and enjoyable one. + +If you have any further questions, please don't hesitate to contact me. + + +**Please Note**: if you attempt to access our website with a secure connection, i.e. https you will be presented with a certificate error, if this occurs there is no need for concern. We create and self sign our own certificates due to it not being viable to spend thousands of dollars on buying a certificate from a registered Certificate Authority. + + +Our Certificate Authority details can be found at [[/public/help/nfc_software]]. + + + +=====Useful Links===== + + * https://nofusscomputing.com/mantis/ - Bug and feature tracker + * http://nofusscomputing.com/wiki/public/projects/scms/scms_client_changelog - this is our changelog, and is updated everytime we are working on our code. + * http://nofusscomputing.com/mantis/changelog_page.php?project_id=3 - This is our bug and feature change log + * http://nofusscomputing.com/mantis/roadmap_page.php?project_id=3 - This is the road map for bugs a features for future releases. + diff --git a/wiki/current/projects/home.txt b/wiki/current/projects/home.txt new file mode 100755 index 0000000..9275c43 --- /dev/null +++ b/wiki/current/projects/home.txt @@ -0,0 +1,17 @@ +~~NOTOC~~ +====== NFC Projects ====== +Here at No Fuss Computing (NFC) we do a lot of research and development. Namely this RD is done for our own requirements, which is to manage our own computers and/or network. On occasion though, these projects may be made available to the general Public. + +To find our projects please scroll down to [[#Our Projects|our projects]]. Please Note though, not all listed projects below are available to the public. To find out it's release status, view the applicable projects page. + +===== Applications ===== + - [[.:logongui|Logon GUI]] + - [[.:scms:home|SOE Centralized Management System (SCMS)]] + - [[.:application_manager:home| Application Manager]] + - [[public:projects:scms:command_line]] + - [[.:xbmc_addons:home| XBMC Addons]] + + +===== Policy ===== + - [[public/privacy]] + - [[.:beta_tester|Application Beta Tester]] \ No newline at end of file diff --git a/wiki/current/projects/logongui.txt b/wiki/current/projects/logongui.txt new file mode 100755 index 0000000..84cd0ca --- /dev/null +++ b/wiki/current/projects/logongui.txt @@ -0,0 +1,154 @@ +====== Windows Logon Script GUI ====== + +===== 1. Introduction ===== +The logon GUI is a VB.net application designed to run shell scripts or programs and display their progress in a GUI. Initially I just planned to update my old HTA Logon scripts but soon discovered that a Logon GUI would look more professional and provide the end user with just enough information to be informed if the logon process was a success. See [[mantis>66|Ticket #66]]. + + + + +===== 2. How it Works ===== +The Logon GUI is added as a users logon script, either by using Group Policy or the Logon Script within the Users Profile Tab the script will run when a user logs on. The GUI will load before the desktop and call each of the four pre-designated scripts simultaneously. As each script runs and when they provide feedback, the GUI will update the progress bars accordingly.\\ The Logon GUI will as a minimum, run for seven seconds. there is a two second pause before script processing starts and a further five second pause after all scripts complete. + + +==== 2.1 Progress Bars ==== +The progress bars are an indication of how far each stage of the logon process has come; generally the bar will be blue. The following table denotes the colours available. +^ Script Code ^ Colour ^ Explaination ^ +| 0 | Blue | Normal | +| 1 | Red | Error | +| 2 | Orange | Warning | +| 3 | Light Gray | No Script Found | + + +==== 2.2 Features ==== + - Provide feedback to users by changing colour of the progress bars.(Assists admins to quickly fault find.) + - Automatic exit after five minutes. regardless of if the shell scripts have finished processing. (This will stop script errors from locking the logon at the GUI) + + +===== 3. Scripts ===== +Any command line script that outputs to the command line will work with this GUI((As soon as I extend it past VBScripts.)). The scripts are stored in the same path as the LogonGUI executable. + + +==== 3.1 Pre-defined Script Names ==== +The following script names can be used for the Logon GUI(( Supported File Extensions: .vbs (VB Script) )). + - NetworkDrives + - UserProfile + - Other + - SOECheck + + +==== 3.2 Output String ==== +The script that runs must output a correctly formatted string. This string provides information to update the GUI accordingly and without a valid output string the GUI may freeze or crash.\\ Example Script output for the Logon GUI: + 5-,-32-,-0-,-Finished mapping G Drive + +Output Key +| Example | | 5 | -,- | 25 | -,- | 0 | -,- | StartedLogon | +^ Key ^ ^ Total \\ Commands ^ Seperator ^ Progress Level ^ Seperator ^ Error ^ Seperator ^ Message ^ +| Variable Type | | Integer | -,- | Integer (< = 100) | -,- | Integer | -,- | String | + + +=== Total Commands === +This is the total commands that the script is going to run and is hard coded into the script. + + +=== Progress Level === +The progress bar is incremented upto a max value of 100. This value will increase each time a command runs and is stepped up to a value of 100/TotalCommands. + +=== Error === +:TODO: Not yet implemented\\ +This value is an integer, if this value changes to anything other than 0 the highest number will remain and so to will the colour of the progress bar. so if the script returns a 2, the progress bar will remain the same colour as warning. + + +=== Message === +The message that is placed here is what will be added to the log file. The logfile is saved to %USERPROFILE%\LogonGUI-{SCRIPTNAME}.log and gets over written every time the user logos on. + + +===== 4. Other info ===== + + +==== 4.1 System Requirements ==== + +| **Operating System:** \\ (Tested) | Windows 7 | +| :::| Windows Server 2008 | +| **Domain Client:** | Netlogon Share on Domain Controller | +| **Standalone Client:** | Netlogon Share on the local machine | +| **Hard Drive Space:**| | +| LogonGUI: | 150kb | +| Scripts: | as Large as they are | +| .NET 2.0 Runtime Installed || +| good understanding of scripting || + + +==== 4.2 Troubleshooting ==== + - **LogonGUI.exe Crashes:** generally this indicates a script error, quite possably in the script output. + - **Progress Bar Orange:** if it is only one bar then a warning command has been issued by the adjacent script, if there was a five minute delay and all progress bars went orange then one or more of the scripts failed to complete. + - **Progress Bar Light Gray:** The adjacent script was not found. + + +==== 4.3 Logon GUI Screenshots ==== +{{:public:applications:logongui:logonguinormal.png?nolink|}}\\ +Normal Operation: The progress bars look like this under normal operation. Once the applicable script is found it will step the progress bar to 3% before it commences to increment the progress bar. + +{{:public:applications:logongui:logonguinoscripts.png?nolink|}}\\ +No Script Found: progress bar will still complete but they will be gray in colour. + +{{:public:applications:logongui:logonguiwarning.png?nolink|}}\\ +Warning Demo: progress bar will change to orange. + +===== 5 Download ===== +This application is not freely availible and if you would like to utilise this application, for a small fee I may be able to provide it to you. Please use the contact us form at nofusscomputing.com. + + +==== 5.1 VBScript Template File ==== +The scipt below has only been saved as a record of history. please use the [[.:logongui/script_template|new script template.]] +This file will download with a .txt file extension. Please rename the file so it has the right extension as per the mentioned filename. + + +'************************************************************************ +' No Fuss Computing +' LogonGUI VBScript Template +' +' Created By: Jon @ No Fuss Computing +' Created on 07 Jun 2014 +' Filename: LogonGUI-Template.vbs +'************************************************************************ + Set objShell = Wscript.CreateObject("Wscript.Shell") + Set objNetwork = CreateObject("Wscript.Network") + +Dim iProgressStep, iTotalMappings, iIncrement +' Default Integers Dont Modify! + iIncrement = 1 + + + +'SOF *******************Custom Variables********************************** + strUserName = ucase((objNetwork.UserName)) +'EOF ********************************************************************* + +' Set Logon GUI Variables + iTotalMappings = 10 ' Change this as required + iProgressStep = 100 / iTotalMappings ' Don't Change!! + + +call main() ' Launch Script + + +Sub Main() + + ' Insert your code in here. + ' Don't forget to use progress out after each command so the progress bar increments and the GUI doesn't Freeze!!. + +End Sub ' EOF Sub Main + +' +' *************************************** Functions ******************************************** +' +Function ProgressOut(sMessage) + ' This is a default Function Don't remove!! + Wscript.Echo(iTotalMappings & "-,-" & (iIncrement * iProgressStep) & "-,-" & sMessage) + iIncrement = iIncrement + 1 +End Function +' +'********************** Your Custom Functions Below this Line ********************************** +' + + \ No newline at end of file diff --git a/wiki/current/projects/logongui/script_template.txt b/wiki/current/projects/logongui/script_template.txt new file mode 100644 index 0000000..fbc4f48 --- /dev/null +++ b/wiki/current/projects/logongui/script_template.txt @@ -0,0 +1,50 @@ +==== Logon GUI Script Template File ==== +Below you will find the script template file. the requirements for this script template are that you know how to read and write in VBScript. you are only limited by your imagination. + +This file will download with a .txt file extension. Please rename the file so it has the right extension as per the mentioned filename. + + + + + + + \ No newline at end of file diff --git a/wiki/current/projects/scms/command_line.txt b/wiki/current/projects/scms/command_line.txt new file mode 100755 index 0000000..5caa280 --- /dev/null +++ b/wiki/current/projects/scms/command_line.txt @@ -0,0 +1,16 @@ +====== SCMS Command Line Switches ====== +When you use our installer to install the SCMS it will automatically create the shortcuts you require to utilise the plugins of the SCMS. + +===== Switches ===== +To view the different switches for each component please review the relevant section of our wiki as listed below. + * [[public:projects:application_manager:administration_documentation:launch_managed_application_installer]] + +===== Application Exit Codes ===== +The SCMS will return exit codes when the application closes. in most case a success will be returned. depending on what you are doing the following are the exit code the application will return. + +^ Exit Code ^ Name ^ Description ^ +| 0 | Success | Task Finished as it should have. | +| 1 | Warning/Error | Check the log file for more information as a Warning or Error occurred during the task that was run | +| 99 | Bad Argument | The switch used to launch the application is invalid. | +| 666 | Not an Admin User | The installer was launched without administrative permissions. | + diff --git a/wiki/current/projects/scms/home.txt b/wiki/current/projects/scms/home.txt new file mode 100755 index 0000000..5009088 --- /dev/null +++ b/wiki/current/projects/scms/home.txt @@ -0,0 +1,41 @@ +====== SCMS Plugin Manager ====== + +The SCMS plugin manager has been designed as a way for us to quickly and easily deploy Software to the end User and for us to extend our services to the user’s desktop. The plugin manager is provided to anyone free of charge. Why is it free? You ask, simple the plugin manager is just the interface to our software and the actual tasks it runs don't directly benefit you. + +Once installed you will notice a new icon in the notification area, this is where you can access all of the features the plugin Manager has to Offer . + +For this software to function you will periodically require an active internet connection. + +===== Background tasks ===== + +There are numerous background tasks that run that we have added to the Plugin Manager that improves our services. The main task of the Plugin Manager is to conduct system inventories. + +We collect this data to improve our services, namely our computer information database. The information that we collect and provide as part of our services is not linked back to you. The only exception to this is if you are one of our beta testers we require this information to be linked to you, that way if we identify an issue we can contact the person who the Issue relates to so we can rectify any issue with our software. + +The data that we collect is the equivalent of us collecting the details of your residence i.e. your house colour, number of walls, how many cupboards, doors, windows, colours of objects and who made them etc. we don't collect the equivalent details of its occupants, visitors or activities that are carried out. + +The tasks that the SCMS runs are pre-programmed into the application meaning, we can't tell your computer to do something funky. These tasks only run when we require them to. Each pre-programmed task has been hard written into the application if we require your PC to run a task, when it checks in with the SCMS Server We send a unique task command that instructs the SCMS on what we would like done. We have not and do not intend to add to our Software in any way Shape or form the ability for us to run random Windows commands/scripts, to us we would consider this to be a Violation of your trust and leave your Computer available for abuse. + + +===== Pre-Programmed tasks ===== +System inventory: the inventory task collects details on Your computer the details we collect are Via the windows management Interface (WMI) which is a part of windows and collects details on Your CPU, Ram, Hard drive, installed Software, Services, Start up applications, Computer Bios and Manufacture and model information. + +In the future we have plans to Increase the tasks that the SCMS can perform some of these tasks include but are not limited to ability to upload debug and crash logs and auto updating of SCMS. + +===== FAQ ===== +**why do we Collect this data?**\\ +If there was one answer given, it would be to improve our Services. Currently with the inventory information that we collect, it will be used by us to create our computer information database. This Information will be publicly available and enable people to have one location to find out things about computers. For example: what are the hardware specs for a particular computer, who IS the manufacture' for a piece of hardware you have Or IS my computer capable of running a piece of software/ hardware or operating System. Eventually this will link into a hardware Driver database we intend on creating and further assist as with future Software development. + +**will this Software Spy on me or monitor my computer activities?**\\ +NO! Even though this software does collect details about your computer it doesn't pertain to the who and what you do with your computer. + +**if this Software is sent Commands, does that mean anyone Can tell my computer what to do?**\\ +NO! Our Software has been built with Security In mind, only we can instruct the SCMS plugin manager what to do. All Communication to us From the SCMS IS encrypted and before any Communication Occurs the Software and SCMS Server run through Security checks including confirming it is the actual SCMS Server. Another check includes a Scenario where we ceased operations-if this was to occur the SCMS Manager Would cease having the ability to receive remote commands. + + +===== See Also ===== + + - [[scms_client_changelog|SCMS Plugin Manager Changelog]] + - [[NFC>mantis/view_all_bug_page.php?project_id=3 | SCMS Plugin Manager bug and Feature Tickets]] + - [[NFC>mantis/changelog_page.php?project_id=3 | SCMS Bug and Feature Tracker Changelog]] + - [[NFC>mantis/roadmap_page.php?project_id=3 | SCMS Bug and Feature Tracker Roadmap]] diff --git a/wiki/current/projects/scms/scms_client_changelog.txt b/wiki/current/projects/scms/scms_client_changelog.txt new file mode 100755 index 0000000..7b467b7 --- /dev/null +++ b/wiki/current/projects/scms/scms_client_changelog.txt @@ -0,0 +1,1070 @@ +====== SCMS Client Change Log ====== +Below are the changes as they were made to the [[public:projects:scms:home|SCMS Client]]. Each time the repository has a change this changelog is auto magically updated.\\ + +===== Change log ===== +//NOTE: There maybe some changesets missing. Only changesets applicable to non developers are listed below.// + +363//**:bc966b7759da**// 2015-07-11 13:48 +1000 // Support: Added Game Category // + + +362//**:70fda1c73921**// 2015-07-11 11:31 +1000 // bug: #241 Don't return from function until all tasks have run. // + + +361//**:a5a41a9019b6**// 2015-07-11 11:10 +1000 // Improvement: #241 Adjusted so hash included in log. // + + +360//**:d4a92eb67dfa**// 2015-07-11 11:05 +1000 // Fix: #241 Task, Validate XML, check for existance of hash // + + +359//**:1e637c14b5c0**// 2015-07-05 12:25 +1000 // Feature: #236 Timer Thread added. // + + +358//**:edc297e62830**// 2015-07-04 11:38 +1000 // Installer: Incremented Version Number Prior to Release // + + +357//**:e13fc7e6fe48**// 2015-07-04 11:37 +1000 // Bug: #247 Disable Advertised Shortcuts. // + + +356//**:c2bf6e351d9a**// 2015-07-04 10:43 +1000 // Bug: #218 Version Number Validation. // + + +355//**:387d1f58bd5e**// 2015-06-30 19:23 +1000 // Feature: #188 Removed the superfluous log entries. // + + +354//**:a137c311a062**// 2015-06-28 16:24 +1000 // Feature: #236 New Desktop Notifier with timers. // + + +353//**:7a3e36bd2f4f**// 2015-06-28 11:42 +1000 // Feature: #183 Updated XML Attributes. // + + +352//**:03229e3882f4**// 2015-06-28 01:37 +1000 // Feature: #222 Added GUI to command line switches. // + + +351//**:0fefc05c2e8a**// 2015-06-27 21:25 +1000 // Bug: #180 Hide form if close clicked, then exit after install. Keep notifier open. // + + +350//**:f21331f015ae**// 2015-06-27 20:34 +1000 // Feature: #177 Desktop Notifier and Application Manager now fully closes. // + + +349//**:3b4de9a82a30**// 2015-06-27 20:16 +1000 // Feature: #177 Desktop Notifier now fully closes, but if done so from the App MGR wont close it. // + + +348//**:2259bc087def**// 2015-06-27 19:27 +1000 // Feature: #177 Can now close Desktop notifier, without causing crash. // + + +347//**:8f8df2768aac**// 2015-06-27 16:07 +1000 // Bug: #235 remove check boxes from Non-Admin Users. // + + +346//**:e3c8ef58cd62**// 2015-06-27 16:06 +1000 // Bug: #235 Prevent non-Admin from accessing registry. // + + +345//**:2ab550a7f217**// 2015-06-27 15:45 +1000 // Feature: #228 Checking of HDD space now occurs prior to installation. // + + +344//**:5ebac31b7fd1**// 2015-06-26 20:51 +1000 // Feature: #188 Daily log also save to logging path. // + + +343//**:9c4a3383823d**// 2015-06-26 20:30 +1000 // Feature: #180 Desktop Notifier Interface Layout. // + + +342//**:3c56974f4c85**// 2015-06-26 18:51 +1000 // Release: SCMS Installer 2.1.8 x64, Incremented SCMS.dll and SOETray.exe Version Numbers. // + + +341//**:bb853a1db8d2**// 2015-06-26 18:18 +1000 // Release: SCMS Installer 2.1.8 x86 // + + +339//**:c5d8789e94de**// 2015-06-26 17:48 +1000 // Moved tag - to changeset 5dcada4aa8ec (from changeset f9182c79e546) // + + +338//**:5dcada4aa8ec**// 2015-06-26 17:46 +1000 // Moved tag #210 to changeset 0b5fbc971911 (from changeset 137c7cae693f) // + + +337//**:6e0143ee2bcc**// 2015-06-26 17:45 +1000 // Moved tag #213 to changeset c9acc62675a7 (from changeset 34a3e748ce90) // + + +336//**:6edacf24a54c**// 2015-06-26 17:45 +1000 // Added tag #211 for changeset 7f65565bd857 // + + +335//**:92c1d399de7b**// 2015-06-26 17:44 +1000 // Moved tag #210 to changeset 137c7cae693f (from changeset 2e5bdba8a166) // + + +334//**:74ab0634fcb1**// 2015-06-26 17:43 +1000 // Added tag - for changeset f9182c79e546 // + + +333//**:b7c2356a4d09**// 2015-06-26 17:43 +1000 // Added tag #213 for changeset 34a3e748ce90 // + + +332//**:0b5fbc971911**// 2015-06-26 17:43 +1000 // Added tag #210 for changeset 2e5bdba8a166 // + + +331//**:6efb1c9fbf59**// 2015-06-26 17:42 +1000 // Moved tag #234 to changeset 3878eb11cd20 (from changeset a920279c452d) // + + +330//**:eba3a05aa22f**// 2015-06-26 17:42 +1000 // Added tag #234 for changeset a920279c452d // + + +329//**:c3dc353e4f84**// 2015-06-26 17:41 +1000 // archive // + + +328//**:d11eacdf9cb9**// 2015-06-26 17:27 +1000 // Feature: #234 Clean Stale Objects. // + + +327//**:a920279c452d**// 2015-06-26 13:27 +1000 // Feature: #234 Dispose of Request // + + +326//**:564a34635da6**// 2015-06-26 12:40 +1000 // note: // + + +325//**:3878eb11cd20**// 2015-06-26 12:34 +1000 // Feature: #234 Project level for disposing. // + + +324//**:f9182c79e546**// 2015-06-26 11:53 +1000 // Log Message. // + + +323//**:34a3e748ce90**// 2015-06-26 11:42 +1000 // Feature: #213 Check to make sure worker is started, prior to commencing work. // + + +322//**:c9acc62675a7**// 2015-06-26 11:41 +1000 // Feature: #213 Added Service Check Method. // + + +321//**:7f65565bd857**// 2015-06-25 18:50 +1000 // Feature: #211 Added creation of URL for file help link. // + + +320//**:dee62289f257**// 2015-06-25 14:06 +1000 // Feature: #210 Request Version and Architecture for custom config. // + + +319//**:07d4f5735791**// 2015-06-25 13:28 +1000 // Send correct headers // + + +318//**:1d3d4b328c92**// 2015-06-25 12:58 +1000 // Feature: 210 Link new feature. // + + +317//**:bb675cbf454c**// 2015-06-25 12:47 +1000 // Corrected Function // + + +316//**:5bc0c1d33807**// 2015-06-25 06:52 +1000 // cleanup // + + +315//**:7dcfd920f4fe**// 2015-06-25 06:15 +1000 // Feature: #210 Update AutoUpdate status box when setting changes. // + + +314//**:3f543e8a74c2**// 2015-06-25 06:13 +1000 // Bug: Description box now show CrLf. // + + +313//**:4ad55d13893f**// 2015-06-25 05:04 +1000 // Feature: #210 testing and refining of settings and GUI. (Auto Update, Version and Architecture) // + + +312//**:9e68bfb28191**// 2015-06-25 04:57 +1000 // Cleanup: Left over from [259 (244524fb34e1) Bug: #200] // + + +311//**:2e5bdba8a166**// 2015-06-25 03:19 +1000 // Feature: #210 Refining GUI and improving expierance. // + + +310//**:021fdc0cc651**// 2015-06-25 03:14 +1000 // Missed from commit 301 (137c7cae693f) // + + +309//**:c8b0a467e877**// 2015-06-25 03:13 +1000 // Bug: Removed comma from reported errors. // + + +308//**:a60d6a5e21da**// 2015-06-25 00:30 +1000 // moving methods side-by-side // + + +307//**:137c7cae693f**// 2015-06-24 23:58 +1000 // Feature: #210 Method re-arranging. // + + +305//**:31e45ee9aa23**// 2015-06-24 18:15 +1000 // Feature: #210 Version and arch selection with config saving, deleting and reading from GUI. // + + +304//**:0ddcca79c6ca**// 2015-06-24 18:12 +1000 // Bug: #210 Null reference exception (first chance) // + + +303//**:6e9867e17d0e**// 2015-06-22 20:32 +1000 // Feature: #210 GUI finished setting architecture and version infomation. // + + +302//**:259bb9167053**// 2015-06-22 18:06 +1000 // Re-organise sturcture // + + +300//**:fb44bb8329fb**// 2015-06-21 21:05 +1000 // Feature: #210 Added ability to select Architecture and Version + save setting. // + + +299//**:d27876d7e2ad**// 2015-06-21 17:14 +1000 // Increment Version Number (SCMS.dll) // + + +298//**:cac024153057**// 2015-06-21 17:11 +1000 // Release: x86 Installer 2.1.7, incremented to .2 release scms.dll new. // + + +297//**:bec88ed274fb**// 2015-06-21 16:45 +1000 // Release x64 Installer 2.1.7, incremented to .2 release scms.dll new. // + + +296//**:ea76c92350db**// 2015-06-21 16:33 +1000 // Feature: #229 Dependent Applications, and requesting by processor type. // + + +295//**:90a8d9a5019b**// 2015-06-21 14:54 +1000 // Bug: #192 Make sure user is admin. // + + +294//**:ed6eb8cd70b3**// 2015-06-21 09:44 +1000 // Feature: #230 Create path. // + + +293//**:a491b6584980**// 2015-06-21 09:31 +1000 // Feature: #230 System and user registry locations. // + + +292//**:c35414e9abe9**// 2015-06-20 18:08 +1000 // Feature: #227 TimeDate single digits now padded with '0' for single digits. // + + +291//**:abfa6c2b180a**// 2015-06-20 18:04 +1000 // Feature: #226 Times each process that is run instead of combined install porcess. // + + +290//**:3f71f7615d38**// 2015-06-20 14:54 +1000 // Feature: #192 Remove applications no longer supported. // + + +289//**:89c146439981**// 2015-06-20 13:33 +1000 // Bug: #202 Made Description, Uninstall, Logo, InstallerSize Optional Nodes within the Application XML. // + + +288//**:9ac86587506c**// 2015-06-20 13:15 +1000 // Bug: #212 Check for existance of file // + + +287//**:1a3e90cb4fe0**// 2015-06-20 12:57 +1000 // Bug: #207 Applications with no install info now show orange. // + + +286//**:bdecd5921991**// 2015-06-20 12:31 +1000 // Bug: #220 Service now sends proc architecture // + + +285//**:b4a03d9e4ff8**// 2015-06-20 11:20 +1000 // Bug: #207 Applications with no install info now show yellow. // + + +284//**:0d265cbbba20**// 2015-06-20 09:04 +1000 // Fix: #223 Fix release Names. // + + +282//**:73991901ab85**// 2015-06-19 15:56 +1000 // Increment of version numbers. // + + +281//**:92ea9c431e4c**// 2015-06-19 15:45 +1000 // Release: x86 Installer 2.1.6 - Application Manager // + + +280//**:55062b3f5249**// 2015-06-19 15:40 +1000 // Release: x64 Installer 2.1.6 - Application Manager // + + +279//**:fcea9936168e**// 2015-06-18 20:41 +1000 // Feature: #222 Added ability to launch installer from command line. // + + +278//**:e1713ad75a95**// 2015-06-18 18:55 +1000 // Bug: #190 Prevented Debug messages from outputting to notifyer. // + + +277//**:32aafb790196**// 2015-06-18 18:28 +1000 // Bug: #220 Corrected setting of variable. // + + +276//**:0173e4cd6479**// 2015-06-18 18:09 +1000 // Bug: #220 Set Architecture to be sent on all requests. // + + +275//**:3fe703a434e7**// 2015-06-14 20:58 +1000 // Bug: #220 Added processor architecture to custom settings panel. // + + +274//**:4ed36dd8c04c**// 2015-06-14 20:00 +1000 // Development: #210 cosmetic only, Adjusted interface to allow selection of version and auto update. // + + +273//**:549268f7df7c**// 2015-06-14 18:27 +1000 // Documentation: #58 and #183 Documentation images. // + + +272//**:9d58e2df49d4**// 2015-06-14 09:44 +1000 // Development: #58 Added download Size for installer to interface. // + + +271//**:764a0b632611**// 2015-06-13 21:00 +1000 // Debug // + + +270//**:8a4af42298d7**// 2015-06-13 20:59 +1000 // Improvement: #58 added Processor Architecture Field. // + + +269//**:14b41f7423e6**// 2015-06-13 20:58 +1000 // Improvement: #58 Read Only Application Description. // + + +268//**:fd78e67f6aea**// 2015-06-11 19:55 +1000 // Development: #58 Adjusted Beta Tag // + + +267//**:979e29e6025d**// 2015-06-11 17:06 +1000 // Feature: #136 Now checks HKU for software. // + + +266//**:b32b86981eaf**// 2015-06-10 21:18 +1000 // Improvement: Added BETA Tags to make it obvious..... // + + +265//**:94b2cb7d0fb7**// 2015-06-10 21:12 +1000 // Version Increment: 1.1.19.1 // + + +264//**:9f271f7a76c8**// 2015-06-10 19:12 +1000 // Release: scms.dll v1.1.18.2 // + + +263//**:163e17ed6b60**// 2015-06-10 19:09 +1000 // Release: scms.dll v1.1.18.1 // + + +262//**:244524fb34e1**// 2015-06-10 19:07 +1000 // Bug: #200 Removed code that required external dependencies. // + + +261//**:2f84c7403373**// 2015-06-08 20:23 +1000 // Bug: #193 Added Wiki Link to Help Link. // + + +260//**:b49c52a9460e**// 2015-06-08 13:16 +1000 // Incremented Version Numbers and returned to debug. // + + +259//**:ad688fe509ee**// 2015-06-08 13:14 +1000 // Release: SCMSService.exe v2.1.3.2 // + + +258//**:112d795c63e3**// 2015-06-08 13:12 +1000 // Release: SCMS.dll v1.1.17.2 // + + +257//**:42fb9edb6c3b**// 2015-06-08 13:11 +1000 // Release: SOETray.exe v2.1.2.2 // + + +256//**:72e90c7456f8**// 2015-06-08 13:05 +1000 // Debug: #87 Fixed release setup. // + + +255//**:38ae1b3e2546**// 2015-06-08 12:21 +1000 // Bug: #185 failure to install was being reported as this application didn't have any tasks. this has now been corrected to check task count first. // + + +254//**:22e4da3a23eb**// 2015-06-08 12:19 +1000 // Debug: #185. // + + +253//**:05e1dad925cd**// 2015-06-08 11:54 +1000 // Debug: #185 // + + +252//**:a644c9cd57d0**// 2015-06-08 11:11 +1000 // Improvement: added type setting // + + +251//**:7216d6f53355**// 2015-06-08 11:10 +1000 // Bug: #184 Fixed. // + + +250//**:14732b31663e**// 2015-06-08 11:08 +1000 // Debug: #184 Debugging added. // + + +249//**:8ae01fe89a18**// 2015-06-08 09:54 +1000 // Bug: #179 Debug. // + + +248//**:b4f875df8599**// 2015-06-07 19:45 +1000 // Bug: #181 Fixed and commands run as intended. // + + +247//**:84fd2ef9c0f4**// 2015-06-06 17:00 +1000 // Development: #58 Updated Category Icons. // + + +246//**:46ade18a0187**// 2015-06-06 16:09 +1000 // Dev: #58 Adding icons // + + +245//**:2d8f9f2de7f0**// 2015-06-06 13:57 +1000 // Release: #58 scms.dll v1.1.16.1 // + + +244//**:9f55944688d3**// 2015-06-06 13:43 +1000 // Bug: #58 Prevented service from stopping // + + +243//**:24c9092f5791**// 2015-06-06 10:31 +1000 // Debug: adding // + + +242//**:256278b67979**// 2015-06-05 19:03 +1000 // Release: #58 scms.dll v1.1.15.1 // + + +241//**:22119e61a25b**// 2015-06-05 19:01 +1000 // Bug: #58 Thread prevented service from stoping. // + + +240//**:c3cdb7ee8771**// 2015-06-05 18:34 +1000 // Debug: Post Release // + + +239//**:979a62ace816**// 2015-06-05 16:49 +1000 // Release: #58 scms.dll v1.1.14.1. // + + +238//**:f8b38b4c05e7**// 2015-06-05 16:42 +1000 // Release: #58 SOETray.exe v2.1.1.0 // + + +237//**:5c327d3ebe92**// 2015-06-05 16:35 +1000 // Development: #58 Final Testing complete. // + + +236//**:52c3037e6725**// 2015-06-05 16:26 +1000 // Development: #58 Added Application Manager to Application, Service and Installer. // + + +235//**:5b1d20d6b6c6**// 2015-06-05 16:23 +1000 // Feture Freeze: Create Shortcut. // + + +234//**:c209c123aaf2**// 2015-06-05 14:31 +1000 // Development: #58 Code Cleanup // + + +233//**:ee5e30659435**// 2015-06-05 13:59 +1000 // Development: #58 Code Cleanup // + + +232//**:35fd00d30456**// 2015-06-05 13:50 +1000 // Development: #58 Code Cleanup // + + +231//**:b08c9b650e66**// 2015-06-05 13:33 +1000 // Feature: #58 Refinements // + + +230//**:916cd5be0cca**// 2015-06-05 11:31 +1000 // Development: #58 Removed old Methods. // + + +229//**:12d8ecfb12ac**// 2015-06-05 02:51 +1000 // Feature: #58 sha256 // + + +228//**:f110a964f171**// 2015-06-05 02:50 +1000 // Development: #58 Logging // + + +227//**:6bbc5e85abbb**// 2015-06-04 22:32 +1000 // Development: #58 Linking to server // + + +226//**:54572ff5dce8**// 2015-06-04 20:29 +1000 // Bug: Fixed Stream, request and responce from being left open. // + + +225//**:dd530454d910**// 2015-06-04 12:40 +1000 // Bug: HTTP read whole stream. // + + +224//**:f66edf9728c6**// 2015-06-04 12:00 +1000 // TODO // + + +223//**:f720f14a30f5**// 2015-06-03 17:03 +1000 // Development: #58 Refinements. // + + +222//**:8cb522b8cbcc**// 2015-06-03 14:48 +1000 // Development: #58 Refinements. // + + +221//**:5691e3194f6d**// 2015-06-03 10:50 +1000 // Development: #58 Splash Screen // + + +220//**:a9c04257c3c8**// 2015-06-03 10:06 +1000 // Development: #58 Feature audit and correction. // + + +219//**:fc1e21038f5f**// 2015-06-03 06:07 +1000 // Development: #58 Worker notification Fixes. // + + +218//**:cb97cfeb3442**// 2015-06-03 04:36 +1000 // Development: #58 Testing Worker, notification refinements. // + + +217//**:b9677fa5e459**// 2015-06-03 01:42 +1000 // Development: #58 Testing Worker, notifications. // + + +216//**:70b291a262d6**// 2015-06-03 01:30 +1000 // Development: #58 Testing Worker. // + + +215//**:68001bbfc9f4**// 2015-06-02 21:15 +1000 // missed from 210 and 211 // + + +214//**:3d5af206f79a**// 2015-06-02 21:14 +1000 // Development: #58 Prep for app installer to use service worker. // + + +213//**:15c11ff0351e**// 2015-06-02 20:59 +1000 // Development: #58 method rename // + + +212//**:573c2c37ea5a**// 2015-06-02 20:58 +1000 // Development: #58 pre method rename // + + +211//**:1b8b14d22ebf**// 2015-06-02 20:42 +1000 // Development: #58 Service worker // + + +210//**:1820e590b458**// 2015-06-02 20:32 +1000 // Development: #58 Client Poling for notification // + + +209//**:03d2d6c3b9ef**// 2015-06-02 19:11 +1000 // Development: #58 Cleanup // + + +208//**:1f6a16f070d0**// 2015-06-02 18:31 +1000 // Development: #58 display // + + +207//**:f869c31526da**// 2015-06-02 17:46 +1000 // Development: #58 Comm wkg with auth // + + +206//**:d6cb7401ce49**// 2015-06-02 12:07 +1000 // Development: #58 Moved to client library. // + + +205//**:82b2abea8a16**// 2015-06-02 11:58 +1000 // Development: #58 Before move to client library. // + + +204//**:2c83c0c11d6f**// 2015-06-02 11:37 +1000 // Development: #58 Communication Methods // + + +203//**:0270f27d1010**// 2015-06-02 11:32 +1000 // Development: #58 Archive // + + +202//**:7cbbaf1fba3e**// 2015-06-02 11:30 +1000 // Development: #58 Archive old Tests // + + +201//**:d9adb4fc4881**// 2015-06-01 16:28 +1000 // Development: #58 Desktop message Notification // + + +200//**:9589a1e51f28**// 2015-06-01 14:36 +1000 // Testing: #58 archive // + + +199//**:3e952a439182**// 2015-06-01 13:53 +1000 // Testing: #58 working, sec // + + +198//**:ba0588f2bd9b**// 2015-06-01 13:35 +1000 // Testing: #58 working // + + +197//**:7506318f3c88**// 2015-06-01 05:22 +1000 // Testing: #58 // + + +196//**:92070a602220**// 2015-06-01 04:38 +1000 // Testing: #58 // + + +195//**:e99a16cbfbfb**// 2015-06-01 03:23 +1000 // Testing: #58 // + + +194//**:c465ccd16cbf**// 2015-05-31 21:10 +1000 // Development: #58 Interface refinements. // + + +193//**:0342be44b036**// 2015-05-31 21:09 +1000 // Development: #58 Initial Desktop Notification Dialog // + + +192//**:9b252c6715f7**// 2015-05-31 17:27 +1000 // Development: #58 Interface // + + +191//**:35ce02618412**// 2015-05-31 17:25 +1000 // Improvement: adjusted registry // + + +190//**:6fd32b327fce**// 2015-05-31 16:18 +1000 // Feature: Added Key exists method. // + + +189//**:e22dba1ce1ec**// 2015-05-31 16:17 +1000 // Feature: Added Default Registry Location. // + + +188//**:7e67402d1c25**// 2015-05-30 21:51 +1000 // Development: #58 interface. // + + +187//**:62b24721429a**// 2015-05-30 19:00 +1000 // Development: #58 Initial creation of Application Manager Interface. // + + +186//**:b38afdcea59a**// 2015-05-19 19:44 +1000 // Development: #58 Adjusted XML tag. // + + +185//**:053b013aa8df**// 2015-05-19 19:28 +1000 // Development: #58 Adjusted XML tag. // + + +184//**:f244fcf24be3**// 2015-05-18 20:08 +1000 // Development: #58 Added Command Task. // + + +183//**:d2e96dc3a779**// 2015-05-18 19:46 +1000 // Development: #58 Changed Method Name // + + +182//**:3f4ff5f7ef7e**// 2015-05-17 20:25 +1000 // Development: #58 Refinements // + + +181//**:66b59c63a5d6**// 2015-05-17 18:52 +1000 // Development: #58 Amended logging to output status // + + +180//**:6820f18e0251**// 2015-05-17 16:05 +1000 // Development: #58 fixed path.....TESTING // + + +179//**:ffaa9208f24c**// 2015-05-17 15:48 +1000 // Development: #58 Refinements // + + +178//**:f228da07376a**// 2015-05-17 15:22 +1000 // Development: #58 Fetaure, check registry, and if dependency install first // + + +177//**:8e331ee603dc**// 2015-05-17 13:39 +1000 // Development: #58 class creation // + + +176//**:d217991ece0f**// 2015-05-17 13:32 +1000 // Development: #58 class creation // + + +175//**:c33242ac15e1**// 2015-05-17 13:31 +1000 // Development: #58 renamed Class // + + +174//**:d489b54cbd6d**// 2015-05-17 12:02 +1000 // Improvement: Added dynamic collection of Common AppData folder // + + +173//**:30b174e44fb1**// 2015-05-17 11:26 +1000 // Development: #58 Added logging method and moved all output to it. // + + +172//**:4c73965dee2c**// 2015-05-17 11:25 +1000 // Development: #58 REmoved old class // + + +171//**:ba9530ed4d4b**// 2015-05-17 11:08 +1000 // Development: #58 Refinements // + + +170//**:9e5953e0eb02**// 2015-05-17 11:03 +1000 // Development: #58 relocated Classes // + + +169//**:1447dc0b52cb**// 2015-05-17 11:02 +1000 // Development: #58 these need to be here. // + + +168//**:eeb8b80c0659**// 2015-05-17 10:17 +1000 // Development: #58 relocated Classes // + + +167//**:7ce1e1243270**// 2015-05-17 10:12 +1000 // Development: #58 Refinements // + + +166//**:823be89ffbb0**// 2015-05-16 21:14 +1000 // Development: #58 Testing of classes and functions. Updating XML file layout. // + + +165//**:a7aabf59f613**// 2015-05-16 18:14 +1000 // Development: #58 Functions // + + +164//**:f6bd013724eb**// 2015-05-15 22:18 +1000 // Development: #58 class creation and refinements // + + +163//**:e2961afbd792**// 2015-05-15 14:43 +1000 // Development:58 Moved Class. // + + +162//**:287134ed3ae8**// 2015-05-15 14:42 +1000 // Development: #58 Class Creation // + + +161//**:aa35e141f094**// 2015-05-15 13:20 +1000 // Development: #58 relocated Classes // + + +160//**:054fd53c2952**// 2015-05-14 21:18 +1000 // Development: #58 Class Creation and logic layout // + + +159//**:6c859af1f77d**// 2015-05-13 21:13 +1000 // Development: #58 checks, and registry // + + +158//**:7ce4b763e905**// 2015-05-12 20:52 +1000 // Development: #58 Class Creation // + + +157//**:a06a3adc7970**// 2015-05-11 20:38 +1000 // Development: #58 Class Creation // + + +156//**:c164348daea9**// 2015-05-10 20:38 +1000 // Development: #58 Class layout. // + + +155//**:d8d54c6be8da**// 2015-05-10 19:59 +1000 // Development: #58 Code Cleanup. // + + +154//**:803d81988a1d**// 2015-05-10 19:55 +1000 // Development: #58 Renamed Functions.vb->ReadXML.vb // + + +153//**:c6ec30a301f2**// 2015-05-10 17:07 +1000 // Development: #58 Refined the Layout of the XML File. // + + +152//**:42a9ca44021d**// 2015-05-10 00:15 +1000 // Development: #58 Created Application Classes and Initial layout of XML file reader function. // + + +151//**:188989eac2b1**// 2015-04-19 14:53 +1000 // Release: scms.dll 1.1.13.1 and SCMSService.exe V 2.1.2.1. scms.dll needs to be updated fist to prevent stop errors for the service. // + + +150//**:d2cb1ce90e2d**// 2015-04-19 13:54 +1000 // Bug: #136 Don't Include System Components within Inventory Scan. // + + +149//**:95cfff8e5f41**// 2015-04-11 13:56 +1000 // Bug: #150 Added installation of root CA to Machine Store. // + + +148//**:4a385f61013c**// 2015-04-11 13:49 +1000 // Cleanup: Code Cleanup // + + +147//**:d4de89ce2bac**// 2015-04-11 13:42 +1000 // Bug: #92 Added command to Service. // + + +146//**:489598c2e796**// 2015-04-11 10:41 +1000 // Bug: #92 Added sub routine to add the service recovery options to the registry. // + + +145//**:eb83931703ad**// 2015-04-06 16:33 +1000 // Release: SCMS.dll V1.1.12.1 // + + +144//**:21f24f51df50**// 2015-04-06 16:28 +1000 // Feature: #156 added Driver collection to Hardware Inventory. // + + +143//**:0aeefbdcd91e**// 2015-04-06 11:09 +1000 // Feature: Support for collecting .sys file details. // + + +142//**:0cb112e4f918**// 2015-04-05 20:55 +1000 // Featuere: #156 created initial methods. // + + +141//**:59bb8db2d24f**// 2015-04-05 15:46 +1000 // Test: testing certifiacte methods. // + + +140//**:5ada58e611d9**// 2015-04-05 15:46 +1000 // Bug: #150 Added Certificate methods. // + + +139//**:56208fc935e6**// 2015-04-05 15:44 +1000 // Bug: #150 Added Root CA Certificate to resources // + + +138//**:eb68b1a2c673**// 2015-04-05 08:56 +1000 // Bug: #92 Test Build, Installer 2.1.5. // + + +137//**:2d0d857be074**// 2015-04-05 08:56 +1000 // Bug: #92 Added Service recovery actions to installer. // + + +136//**:7c90420117e3**// 2015-03-01 12:10 +1100 // Release: scms.dll V1.1.11.1 (Same as prev release but correct Signing Certificate) // + + +135//**:5e999a77278a**// 2015-02-15 17:18 +1100 // Bug: adjusted version number to include a zero in front of single digits. // + + +134//**:c5ca8f430086**// 2015-02-15 16:17 +1100 // Release: SCMS.dll V1.1.10.1 // + + +133//**:77920305a290**// 2015-02-15 12:01 +1100 // Improvement: Added Service File Category to file details. // + + +132//**:fe2390410887**// 2015-02-09 20:21 +1100 // Test: #134 Installed Software file detail collection. // + + +131//**:0be5a0bc58e1**// 2015-02-09 15:55 +1100 // Feature: #149 Added the collection of Service File Details. // + + +130//**:5cfa7f8020d0**// 2015-02-09 12:52 +1100 // Bug: #143 / #146 Fixed Coding Bug. // + + +129//**:de9aca66559e**// 2015-02-09 11:14 +1100 // Fix: #146 added ability for client to report command complete if no work was carried out. // + + +128//**:40ea25dd9361**// 2015-02-09 11:13 +1100 // Fix: #146 Adjusted Check so it works as per default. // + + +127//**:a750c65cb036**// 2015-02-09 10:30 +1100 // Fix: #146 Fixed the invalid cast exception. // + + +126//**:dd2af704d074**// 2015-02-07 13:31 +1100 // Fix: #143 Removed Empty Variable Check. // + + +125//**:fdcd76ce13f4**// 2015-01-24 17:50 +1100 // Fix: #87 Migration to new global logging objects. // + + +124//**:2b25fcb96881**// 2015-01-24 16:57 +1100 // VersionIncrement: SCMS.dll 1.1.9.2->1.1.10.1 // + + +123//**:387fee541b3b**// 2015-01-24 16:28 +1100 // Release: scms.dll V1.1.9.2 // + + +122//**:b810249a98f9**// 2015-01-24 16:23 +1100 // Version Number: Adjusted from 1.1.9.1 -> 1.1.9.2 as this release will be a bug fix. // + + +121//**:acc417480b50**// 2015-01-24 15:37 +1100 // Fix: #148 Corrected bug in code. // + + +120//**:8a8aae65fa22**// 2015-01-24 15:37 +1100 // Release: SCMS.dll V1.1.8.1 // + + +119//**:3871cd95f024**// 2015-01-24 14:10 +1100 // Fix: #87 Corrected logging details. // + + +118//**:16ee4352a136**// 2015-01-24 13:35 +1100 // Fix: 87 Corrcted spelling mistake. // + + +117//**:c68706d97f28**// 2015-01-24 13:27 +1100 // Plugin-DuplicateCheck: Adjusted logging to use Global Strings. // + + +116//**:3364125ca5c9**// 2015-01-24 13:26 +1100 // Fix: #87 Additional Global Log Strings. // + + +115//**:7e89a0d3f45e**// 2015-01-24 13:26 +1100 // Plugin-DuplicateCheck: Global Variable. // + + +114//**:2afd80f221f9**// 2015-01-24 12:11 +1100 // Fix: #87 Logging cleanup. // + + +113//**:fb4ec7d8e5ef**// 2015-01-24 11:57 +1100 // Improvement: #87 Added Global Source strings. // + + +112//**:2127b66c6d2f**// 2015-01-24 11:49 +1100 // Improvement: #87 Added Global Source strings. // + + +111//**:720877d6d7f0**// 2015-01-24 11:38 +1100 // Adjustment: #87 severity level update to RFC5424. // + + +110//**:8c7c0f223d05**// 2015-01-24 11:36 +1100 // Code Cleanup: #87 Removed old variables. // + + +109//**:7cd12a0b956a**// 2015-01-24 11:32 +1100 // Improvement: #87 RFC5424 Severity Levels added. // + + +108//**:bcb521647c5e**// 2015-01-24 10:53 +1100 // Fix: #87 Added global Error Numbers. // + + +107//**:5440416b8216**// 2015-01-24 10:52 +1100 // Code Cleanup: Adjusted location of method. // + + +106//**:54497efada9b**// 2015-01-24 10:43 +1100 // Plugin-DuplicatFiles: Adjusted file chunk sizes into array. // + + +105//**:681e594ca0dc**// 2015-01-23 21:50 +1100 // Improvement: #87 Log Message Formatting for WMI Messages. // + + +104//**:d128b8cd6f99**// 2015-01-23 17:35 +1100 // Fix: #144 Added Baseboard collection Method. // + + +103//**:699bab3dea18**// 2015-01-23 16:35 +1100 // Release: SCMS.dll V1.1.7.1 // + + +102//**:d12447fa5202**// 2015-01-23 15:05 +1100 // Fix: #143 Headers not added to array fix. // + + +101//**:2b40a7262d54**// 2015-01-18 18:03 +1100 // Fix: #142 Amended so Service Filename is shown in error message. // + + +100//**:63715b79ae19**// 2015-01-18 17:04 +1100 // Version Number Increment // + + +99//**:7e50f8dfb6f5**// 2015-01-18 16:54 +1100 // Build: scms.dll V1.1.6.2 Beta Released // + + +98//**:11b6eb75daa8**// 2015-01-18 16:48 +1100 // Fix: #142 Adjust function to remove the new line after Write, also adjust to use supplied filename. // + + +97//**:24aa91625d5a**// 2015-01-18 12:57 +1100 // Fix: #138 Added Debugging to service file errors // + + +96//**:8b8eb5798a2e**// 2015-01-18 11:59 +1100 // Fix: #138 Remove quotes from filepath // + + +95//**:3560b263ba61**// 2015-01-18 09:38 +1100 // Impriovement: #138 Moved all references to file to only run after file check. // + + +94//**:22c3aee39a20**// 2015-01-17 21:14 +1100 // Fix: #138 Added Sanitize Method to Machine Services. // + + +93//**:b131526dc80b**// 2015-01-17 21:13 +1100 // Fix: #138 Added Logging to Method. // + + +92//**:cee5477665de**// 2015-01-17 21:08 +1100 // Fix: #138 Created a Service file name Sanitize method. // + + +91//**:5f3ca40c030e**// 2015-01-17 16:34 +1100 // Build: scms.dll V1.1.5.1 Beta Released // + + +90//**:8062019a56c1**// 2015-01-17 14:29 +1100 // Fix: #87 Added Full WMI Debugging. // + + +89//**:6e3f3ab08b3f**// 2015-01-17 12:47 +1100 // Fix: #87 Added Error handling to Inventory categories. // + + +88//**:2df50803023d**// 2015-01-17 11:59 +1100 // Development: Added WMI Class-Names as variable to classes. // + + +87//**:8266a0cd20a9**// 2015-01-17 11:07 +1100 // Development: Tidy up class locations. // + + +86//**:95f2dc2a2f6b**// 2015-01-17 10:01 +1100 // Development: Tidy up class locations. // + + +85//**:61ea2869c46b**// 2015-01-16 20:44 +1100 // Fix: #137 Added ability for App to load if plugin folder missing. // + + +84//**:06ef1d462aa8**// 2015-01-16 20:42 +1100 // Fix: #137 removed as the end user may not have permission to create Directory. // + + +83//**:70cb8b7e759c**// 2015-01-10 21:43 +1100 // Development: #28 Interface and Filtering Duplicate Files. // + + +82//**:50d80162c52d**// 2015-01-02 20:14 +1100 // Developement: #28 Interface, Cache and Searching. // + + +81//**:cab75b606f51**// 2015-01-01 22:27 +1100 // Development: #28 Interface, Discovering Duplicates. // + + +80//**:e5c075d1bb29**// 2014-12-31 22:33 +1100 // Development: #28 Interface and filesystem scanning. // + + +79//**:6b2602f3644b**// 2014-12-30 21:22 +1100 // Development: #28 Early Stages // + + +78//**:54e101555101**// 2014-12-30 11:06 +1100 // Plugin: Duplicate File Finder Initial Commit. v1.0.0.0 // + + +77//**:610617b98a58**// 2014-12-30 09:30 +1100 // Improvement: #92 Error Catching added to startup routine. // + + +75//**:f0df435adf3d**// 2014-12-24 14:02 +1100 // Post Release: Version Number increment after Installer Build 14 12 24 v2.1.1 Beta // + + +74//**:4732d39c988a**// 2014-12-24 13:51 +1100 // Build x86 SCMS Installer 2.1.1 Beta // + + +73//**:c1b8c3f7c75f**// 2014-12-24 13:26 +1100 // Build x64 SCMS Installer 2.1.1 Beta // + + +72//**:30c9034a1072**// 2014-12-24 13:06 +1100 // Improvement: #92 removed project level import. // + + +71//**:5fabb6697d93**// 2014-12-24 11:47 +1100 // Improvement: #92 Uncommented out un-used commands. // + + +70//**:e6888b8530a8**// 2014-12-24 11:46 +1100 // Improvement: #92 Added Service status reporting with a 100 second delay. // + + +69//**:43657f832459**// 2014-12-24 11:44 +1100 // Adjusted to reflect beta // + + +68//**:ec69fa5ad159**// 2014-12-22 21:23 +1100 // Fix: #139 Check if Path variable empty. // + + +67//**:3cbcb8bbdfda**// 2014-12-22 14:03 +1100 // Debug commit #138 // + + +66//**:318de9de4ecc**// 2014-12-22 13:34 +1100 // Improvement: #138 added data Dir to installer. // + + +65//**:d8655ce7c722**// 2014-12-21 22:11 +1100 // Debugging // + + +64//**:53ef513b5427**// 2014-12-21 22:11 +1100 // Fix: #134 Inventory file now only as large as 700kb pre encoding before a new file is created. // + + +63//**:6425217a34dc**// 2014-12-21 10:19 +1100 // Fix: #134 Filename now optional. // + + +62//**:3d3167887779**// 2014-12-21 10:18 +1100 // Upload command now scans the data dir for files to upload if no filename is provided. // + + +61//**:6235c2219a9e**// 2014-12-21 10:09 +1100 // Fix: file output now corrected. // + + +60//**:4de119f7032c**// 2014-12-21 10:08 +1100 // Fix: Added PC Details to functions. // + + +59//**:023f16dfb8d2**// 2014-12-21 10:06 +1100 // Improvement: adjusted string parameters // + + +58//**:9d2a1d298321**// 2014-12-21 10:06 +1100 // Improvement: adjusted function to check if file input was an array. // + + +57//**:377c44ea5369**// 2014-12-20 16:46 +1100 // Development: #134 DirectoryHashes Function edit to delete save file if exist. // + + +56//**:43dc8e10a128**// 2014-12-20 16:45 +1100 // Improvement: #134 Code cleanup of DirectoryHashes. // + + +55//**:38b0a4e8c46f**// 2014-12-20 16:43 +1100 // Improvement: #134 Amended function FileEncode to use a given filename. // + + +54//**:9e5700dfef06**// 2014-12-19 22:05 +1100 // Debugging // + + +53//**:f942574b9858**// 2014-12-19 22:04 +1100 // Code Cleanup // + + +52//**:4504bad70b7c**// 2014-12-19 21:47 +1100 // Fix: #134 Created Function DirectoryHashes to gather file information and hash all files within a directory tree. // + + +51//**:77f7eb371d8e**// 2014-12-19 21:45 +1100 // Code Cleanup // + + +50//**:d41a960355ec**// 2014-12-19 21:44 +1100 // Improvement: #136 Cleaned and redesigned directory string sanitize function for efficiency. // + + +49//**:902b96af0157**// 2014-12-19 21:39 +1100 // Improvement: #136 Created a function to log to the SCMS file. // + + +48//**:5730e38f59bd**// 2014-12-19 15:52 +1100 // Improvement: #136 Created a directory string sanitize function. // + + +47//**:4d75f375f223**// 2014-12-19 14:05 +1100 // Improvement: #136 Created InstalledApplicationKeys() Function to output registry paths containing installed software. // + + +46//**:78533255bb87**// 2014-12-18 21:03 +1100 // Fix: Adjusted function output to match the return so an exception would not be thrown. // + + +45//**:ddb71f6be861**// 2014-12-18 13:21 +1100 // Feature: Added trim trailing slash from directory path // + + +44//**:e125ff93fdc0**// 2014-12-18 13:20 +1100 // Feature: sha256 File Hashing // + + +43//**:e35ce3f0f8ec**// 2014-12-18 08:25 +1100 // Improvement: #134 Moved inventory functions into their own file. // + + +42//**:3e88ba7fb95a**// 2014-12-14 12:06 +1100 // Increment version number after release // + + +41//**:050cbe0efe86**// 2014-12-14 12:00 +1100 // Release: x64 Beta Installer V 2.1.0. scms.dll v1.1.3.1 soetray.exe v2.1.0.0 scmsservice.exe v2.1.0.0 and update.exe v1.1.0.0 // + + +40//**:de1930b7b274**// 2014-12-14 11:55 +1100 // Fix: #20 Adjusts the msi DB install sequence. // + + +39//**:45917dd40427**// 2014-12-14 10:13 +1100 // Fix: #132 Adjusted installer to include project output instead of pre-staged files. // + + +38//**:21ae06395ac6**// 2014-12-14 10:12 +1100 // Code cleanup // + + +37//**:c249ffb3802c**// 2014-12-14 10:12 +1100 // Improvement: Adjusted Debug settings // + + +36//**:4ac33d7a7539**// 2014-12-14 10:11 +1100 // Fix: #132 Added siging attributes to out put to sign all output locations. // + + +35//**:acb58eb7f0a4**// 2014-12-14 09:55 +1100 // Improvement: added Build Output Log // + + +34//**:c771886024f3**// 2014-12-13 10:42 +1100 // Fix: #125 Increased timeout value of http request // + + +33//**:e58d666dbf42**// 2014-12-13 10:41 +1100 // Improvement: Adjusted Debug settings // + + +32//**:67e0a57a817c**// 2014-12-05 13:26 +1100 // Improvement: Adjusted Debug settings // + + +31//**:05f4daaaefe6**// 2014-12-03 17:44 +1100 // Fixed:Version number was incorrectly inputted. Version Major 1, Minor 1 Build 3 Release 1 // + + +30//**:63a7eb584650**// 2014-12-03 17:31 +1100 // Build: v1.1.1.2 // + + +29//**:945bdc74e063**// 2014-12-03 17:24 +1100 // Fix: #125 Added additional logging to catch other errors. // + + +28//**:24f775088bf1**// 2014-12-03 17:20 +1100 // Improvement: Adjusted Debug settings // + + +27//**:c94314572bc1**// 2014-12-03 17:19 +1100 // Fix: #125 Increased Timeout Value // + + +26//**:846ec6cac96f**// 2014-12-02 19:03 +1100 // Fix: Removed unmanaged code debugging so Debugging could occur on x64 machine. // + + +25//**:ef651ccab9fa**// 2014-12-02 19:02 +1100 // Fix: Returned missing CPUDetail Function that was removed accidently // + + +24//**:9c6db89a6bdd**// 2014-11-30 16:29 +1100 // Fix: #100: Windows Service Hash Incorrect // + + +23//**:bba4d85bfcd8**// 2014-11-29 16:10 +1100 // Increment after Release: SCMS.dll v1.1.0.0. to v 1.1.0.1 // + + +22//**:8fab76e25e5c**// 2014-11-29 14:38 +1100 // Fix: Ref Ticket #101. Added Service File Hash details. // + + +21//**:c74966118221**// 2014-10-19 08:38 +1100 // FIX: Updated version numbers to NFC standard system // + + +19//**:6cd3c1588735**// 2014-09-02 12:40 +1000 // Installer Built: SCMS_Client_x64_V2.0.0.0-R7_Beta_S1 // + + +18//**:e25afa5d22d7**// 2014-09-02 12:30 +1000 // (Code Cleanup) Moved each server command into its own file // + + +16//**:577a3972d56b**// 2014-06-21 11:50 +1000 // Updated Post build command to sign files every time the project is built. // + + +15//**:3e84cfd15731**// 2014-06-21 10:25 +1000 // added client installer ignore from root dir // + + +14//**:e941b594b484**// 2014-06-21 10:23 +1000 // Installer Build: SCMS_Client_x86_V2.0.0.0-R6_Beta_S1 // + + +13//**:747fa51313ae**// 2014-06-21 10:21 +1000 // added installer MSI to ignore // + + +12//**:98b2616b62fa**// 2014-06-21 10:20 +1000 // Installer Build: SCMS_Client_x64_V2.0.0.0-R6_Beta_S1 // + + +11//**:66f7e133d4c1**// 2014-06-21 10:18 +1000 // re-Added installer Header // + + +10//**:48588cf61d12**// 2014-06-13 22:02 +1000 // Rebuilt SCMSService.exe, SOETray.exe, SCMS.dll to confirm there is still a bug. Bug #07 // + + +9//**:b3be60a88f03**// 2014-06-13 21:23 +1000 // Merge with Master // + + +8//**:ea0f5b913cbe**// 2014-06-13 21:19 +1000 // Created // + + +5//**:54d17c8568e4**// 2014-06-13 21:03 +1000 // Original Development Repo Import // + + +4//**:90d54eece8fe**// 2014-06-13 21:01 +1000 // Original Master repo import // + + +3//**:dcb716ab0491**// 2014-06-01 11:23 +1000 // Bug: 19 Create Plugin Folder. // + + +2//**:ca6ad8ba8b5a**// 2014-06-13 20:53 +1000 // Bug #37 Code Cleanup // + + +1//**:fbee5d77fe42**// 2014-06-13 20:51 +1000 // Initial Commit // + + + +Auto Generated File diff --git a/wiki/current/projects/scms/scms_server_changelog.txt b/wiki/current/projects/scms/scms_server_changelog.txt new file mode 100755 index 0000000..f007dad --- /dev/null +++ b/wiki/current/projects/scms/scms_server_changelog.txt @@ -0,0 +1,327 @@ +====== SCMS Server Change Log ====== +Below are the changes as they were made to the [[public:applications:scms:server|SCMS Server]]. each time the repository has a change this changelog is automaticly updated.\\ + +===== Change log ===== +//NOTE: There maybe some changesets missing. Only changesets applicable to non developers are listed below.// + +111//**:bbb564d5e19b**// 2015-06-27 15:48 +1000 // Feature: #228 Added Application Node 'InstallerSize' // + + +110//**:92d0172b5109**// 2015-06-27 15:48 +1000 // Version Support // + + +109//**:f7a6d0d03089**// 2015-06-25 18:47 +1000 // Feature: #211 Support for file help link. // + + +108//**:39015f6c3c05**// 2015-06-25 14:07 +1000 // Feature: #210 Request Version and Architecture for custom config. // + + +107//**:dc975c7ab06f**// 2015-06-25 12:57 +1000 // Feature: #210 Supporting new features. // + + +105//**:ca4de1469ce1**// 2015-06-24 18:02 +1000 // Bug: not selecting the right version or architecture // + + +104//**:ad8edde986b6**// 2015-06-24 11:43 +1000 // Bug: #232 Selection Suported versions. // + + +103//**:e305b6a96683**// 2015-06-24 10:14 +1000 // Bug: #232 Selection of correct and current version. // + + +102//**:d8606e382b73**// 2015-06-24 09:20 +1000 // bug: syntax error // + + +101//**:7912ebe5700d**// 2015-06-23 20:40 +1000 // Security: #58 fix // + + +100//**:1d90154fef0b**// 2015-06-23 20:14 +1000 // Bug: filename had a spcae in it. // + + +98//**:47fd1f1e70a9**// 2015-06-21 21:07 +1000 // 296 (fb44bb8329fb) Feature: #210 Arch and version support added to app.xml for user customizations. // + + +97//**:1d4d0c19bee4**// 2015-06-21 17:16 +1000 // Release: Version Support. // + + +96//**:502740df9d36**// 2015-06-21 16:34 +1000 // Feature: #229 Dependent Applications, and requesting by processor type support. // + + +95//**:f7c2512dd1d8**// 2015-06-21 15:03 +1000 // Feature: #230 Adjusted DB storage type // + + +94//**:f575f1dc6a37**// 2015-06-21 15:00 +1000 // Feature: #229 Added dependent Application to AppXML and Arch to Application subnode in Dependant node. // + + +93//**:d36b99761cca**// 2015-06-21 14:57 +1000 // Feature: #230 Adjusted DB storage type // + + +92//**:138646b97049**// 2015-06-21 11:12 +1000 // Feature: #230 Adjusted DB storage type // + + +91//**:52626eaef0f6**// 2015-06-20 20:45 +1000 // Silent switches added. // + + +90//**:344ce381cc8d**// 2015-06-20 18:12 +1000 // Future code: optional XML Nodes wont be output if empty. // + + +89//**:536d891b6dea**// 2015-06-20 18:10 +1000 // Bug: time wasnt being recorded for processes being run. // + + +88//**:5d06d468311a**// 2015-06-20 12:33 +1000 // Bug: #220 fixed up selecting arch and version // + + +87//**:568617870341**// 2015-06-18 18:59 +1000 // Bug: #220 adjusted to accept architectecture // + + +86//**:fe8358d5f963**// 2015-06-14 20:31 +1000 // Bug: #58 Log entries were being converted to lower case. // + + +85//**:fae34b6b113e**// 2015-06-14 17:15 +1000 // debug // + + +84//**:7c798e8f11b4**// 2015-06-14 09:43 +1000 // Development: #58 Added download Size for installer to interface. // + + +83//**:857ecf230118**// 2015-06-13 21:02 +1000 // Development: #216 Added initial Dynamic XML Creation // + + +82//**:03c7eb4be50a**// 2015-06-10 21:13 +1000 // New Apps. // + + +81//**:f57f0b931303**// 2015-06-10 20:46 +1000 // Version Support // + + +80//**:6e4669563b94**// 2015-06-10 20:46 +1000 // Bug: fixed DB input // + + +79//**:7d4e2a05dc12**// 2015-06-08 19:43 +1000 // Commit due to this being Client bugs. // + + +78//**:d9fc957c2335**// 2015-06-08 19:43 +1000 // Version Support // + + +77//**:a8d65667541f**// 2015-06-08 19:41 +1000 // Bug: #191 Incorrect fields being inserted into DB. // + + +76//**:742e46e25902**// 2015-06-06 14:25 +1000 // Bug: #170 Headers being sent where incorrect. // + + +75//**:3463c6f1b416**// 2015-06-05 16:40 +1000 // Release: Support 1.1.15.1 // + + +74//**:a2db4bc4a9cc**// 2015-06-05 13:34 +1000 // Development: #58 Status Reporting. // + + +73//**:5b3d93513bbc**// 2015-06-05 10:01 +1000 // Bug: incorrect headers. // + + +72//**:0f6c5db79226**// 2015-06-05 10:00 +1000 // Development: #58 Logging and reporting. // + + +71//**:66a940d6e168**// 2015-06-04 22:35 +1000 // Development: #58 Full Lining of application manager // + + +70//**:cf53aa4e5ad0**// 2015-06-04 11:59 +1000 // Development: #58 Added initial Application Manager functionality. // + + +69//**:c9547a85fe35**// 2015-05-30 19:00 +1000 // Development: #58 Amended Applist.xml // + + +68//**:1fc6addc6746**// 2015-05-30 11:51 +1000 // Development: #58 AppList // + + +67//**:cc55de699ef4**// 2015-05-30 11:50 +1000 // Development: #58 updated xml // + + +66//**:daa7705148e3**// 2015-05-29 21:10 +1000 // Development: #58 Application Editor. // + + +65//**:9c6735990467**// 2015-05-29 21:10 +1000 // Development: #58 XML // + + +64//**:4bac67b2e559**// 2015-05-28 20:37 +1000 // Development: #58 Initial deployment methods for applications. // + + +63//**:70e7c31790cf**// 2015-05-28 20:35 +1000 // Added OO MySQL added // + + +62//**:6cd1a74ec219**// 2015-05-28 17:53 +1000 // Server Migration: #163 // + + +61//**:e76e37c03682**// 2015-05-28 17:52 +1000 // ignore // + + +60//**:eafda53f6a51**// 2015-05-22 12:33 +1000 // Server Migration: %163 Moved Files to root of folder // + + +59//**:d81720866a26**// 2015-05-22 12:25 +1000 // Update: // + + +58//**:1c7867d9c778**// 2015-05-22 12:23 +1000 // Version Support: scms.dll V1.1.14.1 // + + +57//**:895841d42b08**// 2015-05-22 12:22 +1000 // Server Migration: #163 Updated Paths // + + +56//**:90405c4761d0**// 2015-04-06 15:13 +1000 // Version Support Adjustment: SCMS.dll V1.1.12.1 support moved to own class due to new methods. // + + +55//**:c7e74fc012e6**// 2015-04-05 20:53 +1000 // Version Support: SCMS.dll V1.1.11.1 and V1.1.12.1 // + + +54//**:f217a6e1f64d**// 2015-02-15 12:09 +1100 // Improvement: added logic to update file category. // + + +53//**:c906d6956462**// 2015-02-09 11:12 +1100 // Fix: #146 added a check so that client could mark task as complete if no work was required to be done. // + + +51//**:53cfdca3b15c**// 2015-01-24 17:19 +1100 // Version Support: SCMS.dll V1.1.10.1 // + + +50//**:3f0dfcf80057**// 2015-01-24 16:27 +1100 // VersionSupport: scms.dll V1.1.9.2 // + + +49//**:c0cb474c442b**// 2015-01-24 15:36 +1100 // Version Support: SCMS.dll V1.1.9.1 // + + +48//**:7933fe3a08a0**// 2015-01-24 15:25 +1100 // Debug: #148 Added Square Braces around command to assist in debugging // + + +47//**:292f982ea047**// 2015-01-23 17:33 +1100 // Fix: #21 Added baseboard collection support. // + + +46//**:e12114d7b5cb**// 2015-01-23 17:33 +1100 // Increment: Added Support for SCMS.dll V1.1.6.2 and V1.1.7.1 // + + +45//**:05c38cf45a9b**// 2015-01-17 21:04 +1100 // Added V1.1.6.1 Inventory Support. // + + +44//**:9055f213912d**// 2015-01-17 21:03 +1100 // Improvement: Added 409 Logging. // + + +43//**:250e0d2770e5**// 2015-01-17 16:39 +1100 // Debug: Added for Beta testers stage 2 // + + +42//**:356a3e5ca37e**// 2015-01-17 16:39 +1100 // Improvement: Remove existing debug data. // + + +41//**:6e265aa0f410**// 2015-01-17 14:29 +1100 // Fix: #87 Added Support for SCMS.dll V1.1.5.1. // + + +40//**:c7274f30815a**// 2015-01-17 13:52 +1100 // Development: Unknown // + + +39//**:7a7ecc626224**// 2014-12-21 22:21 +1100 // Feature: #134 Logic added to store file details and link it to an application. // + + +38//**:0121b302e95e**// 2014-12-21 10:27 +1100 // String to Names. // + + +37//**:6856b70b6665**// 2014-12-21 10:26 +1100 // Code Cleanup // + + +36//**:91c648083fb2**// 2014-12-21 10:22 +1100 // Fix: Switch Name Corrected. // + + +35//**:6f97ab73ca18**// 2014-12-21 10:21 +1100 // Fix: newline now returned to original explode string. // + + +34//**:89e72c08b15c**// 2014-12-20 21:40 +1100 // Features: #134 Added V 1.1.4.1 // + + +33//**:6931e3645cb9**// 2014-12-20 21:40 +1100 // Improvement: trim uploaded data. // + + +32//**:5c737b5d09af**// 2014-12-14 17:59 +1100 // Improvement added additional logging to debug logs. // + + +31//**:a7911ca29815**// 2014-12-14 17:58 +1100 // Update: scms.dll V1.1.3.1 Released // + + +30//**:76831c2eb695**// 2014-12-03 17:39 +1100 // Release: v1.1.1.2 Released Stage 1. // + + +29//**:ae3d85a6cab0**// 2014-11-30 16:32 +1100 // Fix: #100 Windows Service Hash Incorrect. SCMS.dll v1.1.0.1 // + + +28//**:bd4ccd99a691**// 2014-11-30 15:50 +1100 // Fix: Added SQL Time Variable // + + +26//**:37726b750657**// 2014-11-29 17:41 +1100 // Update: Created the logic for SCMS task creation to update SCMS client on release increment. // + + +25//**:d4d9fef62342**// 2014-11-29 17:07 +1100 // Fix: updated For array so could increment from family to release // + + +24//**:cf3f1ac69740**// 2014-11-29 14:39 +1100 // removed un-needed Debug line. // + + +23//**:2ca46ebb8b86**// 2014-11-29 14:29 +1100 // FIX: Ref Ticket #101. Added service File hash details. // + + +22//**:42679049f326**// 2014-11-29 14:29 +1100 // Update: Added File Version details to PCID on hover. // + + +21//**:83c251bcbe13**// 2014-11-29 14:28 +1100 // Update: Ref Ticket #101. Added column names to insert for service. // + + +19//**:37410c4e2ae6**// 2014-06-25 21:12 +1000 // Changed to order PC's by most current checked in PC. // + + +18//**:37c5f2f584c7**// 2014-06-25 21:11 +1000 // Feature #88 (SCMS Server Logging) +these methods were updated to reflect the above feature request. // + + +17//**:11630852326b**// 2014-06-22 15:14 +1000 // Feature #88 (SCMS Server Logging) Started session for logging. // + + +16//**:489011fe7ccb**// 2014-06-22 15:10 +1000 // Feature #88 (SCMS Server Logging) Added log severity to index pages. // + + +15//**:257b1bcf65b7**// 2014-06-22 15:09 +1000 // Feature #88 (SCMS Server Logging) Changed to absolute path to prevent different logging locations. // + + +14//**:33528c7742c5**// 2014-06-22 14:57 +1000 // (Server Error 500) +Log method name needed updating Due to Feature #88 being implemented. // + + +13//**:430d3bb4c4f8**// 2014-06-22 14:52 +1000 // Feature #88 (SCMS Server Logging) Added ability to filter by log severity. // + + +12//**:b52b3c619463**// 2014-06-22 12:48 +1000 // Feature #88 (SCMS Server Logging) Added constantans for log level and renamed log method. // + + +11//**:1185c368c912**// 2014-06-22 11:51 +1000 // Feature #88 Initial design of SCMS Server Logging. // + + +10//**:c9534798332e**// 2014-06-22 11:36 +1000 // Removed old file references that are not a part of the SCMS client files. // + + +9//**:7077bbde8e02**// 2014-06-22 11:35 +1000 // Changeset (0ee126d3dbe7) was causing an update loop due to the method being called wasn't updated. // + + +8//**:698cd9764cff**// 2014-06-22 09:52 +1000 // Removed old file references that are not a part of the SCMS client files. // + + +7//**:ac83bf4019ac**// 2014-06-22 09:09 +1000 // Removed old file references that are not a part of the SCMS client files. // + + +6//**:60ff3ed389db**// 2014-06-22 09:02 +1000 // Code Cleanup // + + +5//**:0ee126d3dbe7**// 2014-06-22 09:01 +1000 // Moved function inside update class so it can be upgraded as necessary. // + + +3//**:1378c53ced4c**// 2014-06-21 21:00 +1000 // Feature #86 +Changed function to allow user to update based on their group permissions. // + + +2//**:552e17c15816**// 2014-06-21 20:33 +1000 // Bug #85 +Function was selecting multiple non-disabled files and not ordering by highest version first so the highest version would be availible for download. // + + +1//**:caa40a8bcb3d**// 2014-06-21 12:06 +1000 // Created Local Development Repo // + + + +Auto Generated File diff --git a/wiki/current/projects/xbmc_addons/home.txt b/wiki/current/projects/xbmc_addons/home.txt new file mode 100755 index 0000000..017d2f9 --- /dev/null +++ b/wiki/current/projects/xbmc_addons/home.txt @@ -0,0 +1,9 @@ +====== NFC Addon Repository ====== +page to be created. + +We have our own XBMC (Kodi) Repository, which is currently host on GitHub. [[https://github.com/NoFussComputing/XBMC-Addons]] + +This repository holds all of the XBMC (Kodi) Addons that we have created and are available for you to use free of charge. + +===== Addons ===== + * [[.:nofussconfluence|Skin - No Fuss Confluence]] \ No newline at end of file diff --git a/wiki/current/projects/xbmc_addons/nofussconfluence.txt b/wiki/current/projects/xbmc_addons/nofussconfluence.txt new file mode 100755 index 0000000..cd16c32 --- /dev/null +++ b/wiki/current/projects/xbmc_addons/nofussconfluence.txt @@ -0,0 +1,18 @@ +====== No Fuss Confluence XBMC (Kodi) Skin ====== +This page is still being developed.... + +I must admit that I am a fan of the default XBMC (Kodi) Confluence skin. But due to this like I have had to miss out on some of the other customizations available within other skins. So to this end I decided to start modifying and therefore creating my own skin, No Fuss Confluence. + +Mods + * Custom Video Information during Video Playback (Fig 1) + * Additional Studio/Video/Audio Icons + * Custom TV Shows / Movies Playlist + * //add the rest here// + + +Some of the mods I have done to this skin came from ideas I seen in other skins. As I have borrowed and used these additions, I am more than happy to give credit where credit is due. //If you where the original creator of these ideas please contact me.// + + +==== Video Information screen ==== +{{ :public:help:applications:software_install:xbmc:xbmcvideoinfo.png?nolink |}} +Fig 1. Video Information Screen \ No newline at end of file diff --git a/wiki/dokuwiki/images/media/public/applications/logongui/logonguinormal.png b/wiki/dokuwiki/images/media/public/applications/logongui/logonguinormal.png new file mode 100755 index 0000000000000000000000000000000000000000..ce5da8ce724d5924b90e0b3f7bcf2b51ed307d74 GIT binary patch literal 74113 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

el1CWu?9+QN={Aoh79T-*%AdT!8>|q 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
{4qEGgiR)K>ZqFtrsH*;>2TckUgT@3uK`ap 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/applications/logongui/logonguinoscripts.png b/wiki/dokuwiki/images/media/public/applications/logongui/logonguinoscripts.png new file mode 100755 index 0000000000000000000000000000000000000000..f4ab9353525d168d9e7daa3d9c8abfd20230a6b4 GIT binary patch literal 75446 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

ln!W{uz*?+*EdJ4RVQ8IWlgM1DpvJ{iuH3az+ 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 VY6yAw&BKQt$;&89mrELd{2#3^B1QlJ literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/applications/logongui/logonguiwarning.png b/wiki/dokuwiki/images/media/public/applications/logongui/logonguiwarning.png new file mode 100755 index 0000000000000000000000000000000000000000..f2c79b8ce0981302cd61623d46c331a74c4bfc2e GIT binary patch literal 75348 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

e4$m=t(V7d%~;D)K#q&d55(|3=$<_Hio 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 M07*qoM6N<$f_^i5egFUf literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/help/cert-software.png b/wiki/dokuwiki/images/media/public/help/cert-software.png new file mode 100755 index 0000000000000000000000000000000000000000..b4fbe993d0afb4fc48cb86bbeaea2c43a92adb7b GIT binary patch literal 10622 zcmcI~by!qw*YBXHh((HmAh8D+B%~XpgiSLvh)N9%DP008k`gk^&>%5%w}hZ{$57IW zbeD9T@qNzoeDC|6@0|b6Tx<5Mz3#o&z4m?G>$hTdu)3=JEn;e72n2EqRFH*3AOu(l z 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 TYV^+wVh~VHRkl$2<-7j{b*#WJ literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/help/installsoftware.png b/wiki/dokuwiki/images/media/public/help/installsoftware.png new file mode 100755 index 0000000000000000000000000000000000000000..bf1075376fe605759bfcb1f5f72c41969a73bc3d GIT binary patch literal 10806 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/help/location_windows_error_reports.png b/wiki/dokuwiki/images/media/public/help/location_windows_error_reports.png new file mode 100755 index 0000000000000000000000000000000000000000..b2cfb34b58cfc9688eda5c37ba4358cc08913471 GIT binary patch literal 30662 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/help/mantis/mantisforgotpassword.png b/wiki/dokuwiki/images/media/public/help/mantis/mantisforgotpassword.png new file mode 100755 index 0000000000000000000000000000000000000000..43f25cd381fe30772f53f3fe0927b703be5c2a3d GIT binary patch literal 9614 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/help/mantis/mantislogonscreen.png b/wiki/dokuwiki/images/media/public/help/mantis/mantislogonscreen.png new file mode 100755 index 0000000000000000000000000000000000000000..39375f99cff4092af4e736f4823e1a9f77fbf478 GIT binary patch literal 8982 zcmd6NcTg1F*X95cB#45bNK#Y~P*4F1n#&eP|{h-X^rER2^JVK5lW z<3}pGFc=L8gHahW&`@ghkp<@|4;pu+$NCHm3}aK;la%6%XHWH2DbJIW6IRxfu$Idw zFxcGO+}Q}(wBbLrSAfAdZER8b;NT$D6LDnT!dU;0&|JaM(NqtvD9dxqHhPDTBYq(+ zMUe+ZKI+2|pA$*FC*^Zr`WD>86r7Y*#_xmSa;ueIj+q zvP5`&APt^dRDi@DgDv{1WVKjYTplz;J4X$*MBHc{o04!d5ZF4VnnXvxBUp=98#Fs0 z>`+)j$>|OjV$4~IA=V1F+ zbg(u&_C?O)lb?i2Y={cGQ*Jef0~kn!m%H#1iR1rOT}K+vE0lYFM(k-c>Yw8ND%r(3 zn{_NjcU*C;R9?$Cx36MM0eH_}AT$y`;P&OaX`0r?9bMO4T5RDn&9}4^9P%hmiP_Lh z-M+u}eRie~T2<0)?P*Na>fO&8VC3scUF}BhN9+@FnNlDnp{A zc0|4z8v_$DEy{=&n;t|K#W5 zvAymBs=s#5D|dinzZY86PkR2;pe?rj4?|UZsi~kxmQq40ga>+Zq>frOTSum)c z1?nz-!;89pIdYRS)B!Pi_$`tL#|8aPD zQAZ0oCfPi4J&pQ?trm+bj|WjHzsf|H9}P<`8BiB>+@S*IuksdEv=!v5DLeYqMi>b@ zPQ0tnuS&)igr#IfmkMo0pZ-ooOpEiWu)7()9kY_EJA$g!XKBADkY(u1ThQiUscq;RGpip{ z+9R&dF;&c+2^r8E%TZqA<;0hhPjxoY0Jd{4&yz|tC)BUlS(!^^DGx|$u?#%dM;6J( zbmupQtAy5*Rh0SGuSwr@N#xL6trCW}&pweVo0UoXC2GkSs*`9FgxH+^8R&c0>8I=A zKr1st@yejVVcS-nzB^_?N`mSgV^`awPHI(3zPu zZi*Ei^>G`urM}4{I4`S8eXM~}F*=&6aQqRT!^IOR?1g(E_<|dDb*@b?Y z>XEBLWhT0ZW`z&L^uF{&#l7C70c5VcElW2kL1hvCc-D_>$v!O>Zm!_8yFcMr`99P_ ztapu9yehf?*jfW$LBw9Z=IMNC0i*h`%|3bZInz}N4sAs_|X6H)F^@4m+ z$sxxe1(AB)GIx+R*QB@K^EGQ`Lo7A0cll>u;7R)EH_*`J7*(ULDzc)0672U1^_SK^ z@41AD#1$st)7XE=k0aup@A)E@KRg#%40Wj0Eq`Wkk18D9^?vmi?LMZ1l{ov_z);OB z2Z|@nY~|g2OzQlslVY4h7mE{QB7itRSj=Ra|v zh8|_{2}nLJW?fEGLLj4)*sEV$UZSId%Cel8{S~2~`W#-4J}2IOi6&0(5Sm81YX!GD zcb<{C-}Uu7?|Jv%!o#%=WuX~Q%ieLehC;WyC4N(0xETG$2!2m-#dPJc!xW5Qom zTLgioKdnIhjq2ymz7=s}5W~ouX1PtiMNwjR^n3?zLZ06KtF270U;yFr=fad`CE9U+ zakXROY7EzCw&yKh*A7m=g{ni!U|?gHB)I=dCZuk)PSs4yxKjeorw({OG?v zC*%-$JgAg8@jyDOsvqj|aJYSjXsujrU|}FB28WIhhR{8mok?tW5rAzJSPZ@aoq|BB zR^4ux$Terr6M5hS^|{*Sio_UFcfgwlk6i|VZUz`c2Zbr$3-CG9k2we#`jCWZPcQ@F zNL;N{Iv?2&_$Ra)io|RlOZO!;(oUkK+wzab&98p-%e?`P^gF&(UK#Q^Rd?$Sb_wb; zrSpc`ep8EpJVD^paJ!Duv8mgl&smZyf%nDdFwqW#%POA93kJNtqE7(UG#%pyXqFtn zc2B1lnvL*`XYc(A?Q2M#}wbCrCP3pPjFP6cij)rCGn~YoTo*_Bm-f^i;2m; zx8baZQ=KCu7fy<4Q;gbnPzh$NMHdY*)gI*QJAY`bDn`X6RoT8*L+cEd?F}8W{9Ldk zWxUh+tUjV;ip|%Xvm?A7$DWsH>{Y05lOR9E8APCz;`Z3&>y#1!5 z*Cg%s{c7P4Zyf=>f)lX?M@`>?MyCc+&<*a4(H=*}^p_|4@V0vcFGjd6udYmI8Lk#H z*XdgYtj2qn$;81|^KSY=p5^a-#qcR)z1Jg@xC@VY3SBQjl{>szO%_QllWS2Ed0Oge z{%g1)`P9e7FyiXV<)W(x;&=^>vt}+h_nxnce3Y-wd0s=~CQTKRe$?qtark%=?j?*C z3-A6yFI%SB7%j@$7=Icq{(<^MCxrSzvW$if|ZGI>@_wmcbs>1#{ zl!Us*Cb5B(xloMg`lf(z>4G0rx`~(!ahI#~R(tCWIc^vVe?dvI=%zJRCW)5SV@b=P zBX{ast(Ngk5eA8}EHR0w22>u6FockrNS5 ztF<>og01dDP)BNaI;fRISg}5Ba|#M;-ip#kC-ZeJPan4~7+t~?jE*h-UQsnLp+e<< zaEfZIbe8M|a7AT|Li2ZkKCQ2G<!i9^J$C0C z2F`m!!ckG3h&g7Cu3lD9R9c~QHQYQ`OH?B5X9uJfp8J{d$tnLytkV8`B##5NX8eoJ z`TPx6ewg1QY zF13*SN{kDm!LGO|5~>XCt2Tb19Apv%^1MUxVj{ee`IR4sIAi+q1X61UNo~*u9pLPY zOtl(NaX~6d|YnR+a9I!POZ}e+Gib?l@AG7c2^;YzgJVjbP01W?^ zfZziKpwpUB-^-RBDtn0U(W*6e9BD{UOL5 zw=)E@01PI@lt0uS_hmlBIJ@JPjYl)4$t_hPCnZ!qHXTev>&Koen9NHnH;KIJ{Skq@ zz}T5*8<|co(B#w8!2Q;vh^)r14amGV{n(AS(XkwEUFx1cI!2XH;sA=)GM8?#0&q`7+B-1L}bF@4aRi!Qk5MFw*i^39o(jAWpQUsUHOt0z|B zL11xzqe-bll{1!u);@m5=%hTm8*3Yn_m!c6+J;ox4n}HZa8RAR&`{(N>`-YRYRmNb zb#ki`#OAVJ(>AHqc9x_c?snd95Omz{e!Std;nbxpF6+AEwhyIWDDxZ(G4h$lAE@yM ztP4>GUH1o&_0eFrhWhQuly2qI16o`fQAH`mDJm8D5)pEVeE|H*!<0`N&Xjg;M&nJQ zL5*h9={$~77u`h^5@0f18*o@&Ba6?!B!+@8KOsn0(yQ`PEU3A-YsEOyq*cfL<}3|kx8ynZf8uN#iP2?R zG4p4`ZI?vRtON^XJJn%ofbc5iV?+0CM&c|Z+L&6g=?3NHQl4g@_}*vkehgguz165r zAT_?7quM@{f%I|DlHtxG9fqWtJi0bzEC1#k<;^VGt|{PM3hDkKJwRcN;a9Mpym(Lq zy{~q`HM{N{xtA7+$e6*mP)s6tY$=p}@)}g2XmLsGf%rQ5%#NpvBqnj~~*f)Q`iZMl4BZG3XrZomPN_4h?qKJGtLH2HRmPk0-U z*_fSojmX%CfICu9i!-tqbn}lFStK~dhu5tJ(z+zxhSC@B6EPQ2*ij>EQQjaEKv;7E znZhFv!)x3C+>iJmS$sDDj3W0ht9B|bHqD#-K<*C%LxQY8(}}>O*wi-m706c%+K7-v zN>$Ct#mi!-fYrbFwTpqLT@r)9oJ?~L!$~nJKs^{V4F*pUd1)axT8PaBI8SjaUZa7e zLviP%*qz@{)>H{=Q}|!0?{B~j)P@&tHZ?`oa_ux;?r-eoYOYK||A`$(eWE@5#(%Kl zQ`mO7)F|kUni`X~7b)f_qbb3iFEBltLPi#S1A?9wu|KcmB{- zLUVb?Oumx;vWW#X%qp=;Ckf4=rU$0-t=>e3S4WYb@-YyvM}v0W&{TI(z4a9k|1-ynFkuCk@s+|oWO91`%s zdb&}CXaoM;wsLpmyqNzoAlC=tf-cb!5w1hX_CD_fjcZP1AE7kz{nCJWl_y=5e0}f z^O{O|)Rk&s(Y53gxuv6Y(8s=^2X|OP1+no0tT!Y~e5~gRr>C?M69J#*+mSVb51L3B zG!R=|fy_VX_IIEy?$EL77nZqG*T5c&%girVyZqPUbz*04+sf^kVq|vT*V&Qc#l3>W z5&vSMrwzeQNYbd0^n(gGZHV}?9IOyWAwh^7C)JV<#p4tjCnWSYPiJxd%b4BiH<`sW z6h08I*SM-Y8~P8Q#-+1gD|vovBQNvQ{Y$V>k}|L_Bfk&|I{n3Z%K-hwdeOzLbi^z} zT&1C81)-#neXcGS9A(-`0b9Qt{lBJ)w!jDHD7>M36Jij?@|R45>!&X3o&~(wWJfJJ z9kwYQa){IgsEi(xxLzTb)y-N=4J5IRruEFz8wP_rCDx{-D#yc-}K{@XmoAB&$7b3nUJ9Jl*=0RG!B3v=IPAJMlW>;ni|f6C`>hi=ru@ z*K|n9O-Y_!Rq?NdJxB-*?rX9zxPV_F=H%y_#?G~UJ%m;UZvrEV?hUOy{QEpqBJ6TOZh?v zT{lwh<=ss1St2(tP*DAaJ3(RM5GGeP;$XECTWwManHH~&L&doMFXc^qOJa(JeJse^ z+&++4VtXcZoS50s5rsAxFv7LzcEb6emEiVjZ|C=*f^j}Z&0 zjgj6YOvc<6eug~p`fb17#9$hc!Th86NUU6gT zaMc}&Z$E=?|Im}YfOp)#%m36raj=Kk*Z#p@7B`We#vE&~$uX=e_WKfGl$!5IfHYP< zdIm`PPf2~eeEfeDnn^c@Y75WU$PulniPntVz+Hz7M&QZ|=CA7CKb#yNjLp*zJtWSy zR$$Zv-j57b(%>j6*hWq9?R@z51nUJ8n%nf0jO{UeR32jBMj2|0W;stOM$Lz>P+fY| ziKYCeD(7JV?8n^!P-_PRB~jGvbdfj+tQbDL5K5-ARSFUU=@?@h8LxPLH$)a!ljD)~4v1vBBHwsGuludkC( z?DQAe;q{I;P_p2)gfzW`IVCN5fOOg*JXV6eO{Qf0X-C(n(u>r$pul}T@$aOalKIA% z*JJgaABcGwy`P<+2+{C`4|?TwcL?ef>jVI@Q?rk;8<6|DD`eL5WL@Vmclm0W;&}Cg zPn{UXbWp%V$^!0A%GG^)bT1ZsT@z@X7O$o7EcdX+E2tyjhIS=$L)QVvVf322VW$Ik z6qq0~QpLo?^+OgKJ!(=brX$U^&XUX5)Rie1-Kl)F}-`ZhT76L{XLuNQrA1 zF{vByj~VR3Wp%OE(mr<~!L6(j(zOexuiv(3kJma*3~U?7?wIO+^)dJk|H6b6+}}8D zSJfF|n76%y8=!_7_8>@d41CS%({9#~D(PkOVh!o;3I z1_rs7FYG^|F}LD5D%Xpk(1uEgh);>QmtaXv-`+7u+7V~>j8B}Gf-aT3-w-{xiJS8( z^B+cvtk+!^@1iHKc>rTMV-n>l%K%BzaGFnuxF$b?K8cEE$_nsYTzS}lT)$Pkg_S@d zAXIJnm4#5qx}<{`!f#YBiCfhgc#IK7I1sBv+ds4#aOzuMiC0+AG`ll)i%rgYPTXW; zAXM+K_x9VTz~#hAWaXH6fyB9SSJK)_&5X#z_yt$vJ=rfAwRbBPT=K0IDZPDL<#ES8 zSKNj7PAHu4le%QQMv=1fKV*%H;IWFe8Xs$$5x>u7=>zmfC7qodwm7dlT#K(UUVSk- zvcBSmwVh_Iw!V_Qfb}*yDM{ko99P_?-(!E<_|k)fee)SLpnD>IIh-f}~P3uemff{%X0~$#Uq{|IR z7q|7yo;znkb&75ql?r|3rW?JAOA3@jeJ;4|mYx+b;;Z?tD!tJVh-o zPBESjF+sWox#1p?e@bVzv@=qCu}09q^4Sth?_%2)D(l3dYVMxW$a54gPPhULI1ItM z3=DU7yUk5m=J^XSi9RMI%+4*H0YZyrvz@Q~i+T=M)Ln|F-A+!=%$%$%0}#b1U-LUT~%yd=Axe%=lBSH-IKG`_2xUWjn^k3E4KM6 z*+9t}lFRy!#i=287VYTo03i3tZe}<`Ieji?@A??OP%s!zxm?j$);%flJpPoxj{0qn zYf!pX*7tN4NQ)lQYQY%NGgdcSPwx73De5v_t|-`3_m^sEyLbL2BjK*3+!>EAt)c_x z7M{}cF%rys0s~&|<++$?RzVTkOR3x4?Fc}zMt;nab!+2~l-H$RGrXPnv-vEunv$s_ z*!*@oE|(22$BUQa8bYqd*Ti+3_=`I)3Zm9liwJ)b)i!K2;*+;4c$~~cXxg6f-PlC) z$UDhJbk96La47fR7MrQM|N2u4<+#Ja-?IStWt)vD-UCjB zD_UaO8DiQ~ie2z^r0dQ!>ISrQ64H;CQ7&mkII~o)buOp0=^BZ+T9v z-MaePl@eqkx7m26W@sm|G`wUx>;t)}{CK7RbjFdaHAwD>0QDyltZhUz`0A=i->;I9 zYu}grwCsIf`tPg{DsE>Qe+bi>_J_L%%f?EH9!S>kKR7{ats+Yd_;SP}Rl55_oTrd0| zH;l!ti}Ll;#_mKg`}>DYEuW$!yq%Xmk33#*0&A1gPbRu2HZ`x({LkNQkN=PNZ#{oo TpZAnwBe2J+S}Mg#FJAo@d2=h6 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/help/mantis/mantismenubar.png b/wiki/dokuwiki/images/media/public/help/mantis/mantismenubar.png new file mode 100755 index 0000000000000000000000000000000000000000..f8ad01d7b77915cecd2fbc4abb581abebb7d7f97 GIT binary patch literal 1709 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/help/mantis/mantisreport.png b/wiki/dokuwiki/images/media/public/help/mantis/mantisreport.png new file mode 100755 index 0000000000000000000000000000000000000000..5ea58838514276f04d05ef910262e9a610371fad GIT binary patch literal 9188 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/help/mantis/mantisreportselectproject.png b/wiki/dokuwiki/images/media/public/help/mantis/mantisreportselectproject.png new file mode 100755 index 0000000000000000000000000000000000000000..11df2673bc83c5eccb44f3af320b2073594f6a1a GIT binary patch literal 1631 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/help/mdt/mdtstructure.png b/wiki/dokuwiki/images/media/public/help/mdt/mdtstructure.png new file mode 100755 index 0000000000000000000000000000000000000000..6f3aec6f0b3e2c6b255019c916c0a9a96de8abd4 GIT binary patch literal 9214 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 S5BO^~1bSM=ns3ydgyhiOCEf51 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/logos/nfc_dfs_logo.png b/wiki/dokuwiki/images/media/public/logos/nfc_dfs_logo.png new file mode 100755 index 0000000000000000000000000000000000000000..300ae9bad46b407a16a973550eb7313e3ac1695b GIT binary patch literal 12913 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 YQqA!rtBrXDe*qDY5|k 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/logos/nfc_wiki_logo.png b/wiki/dokuwiki/images/media/public/logos/nfc_wiki_logo.png new file mode 100755 index 0000000000000000000000000000000000000000..d1c305e195dca8ac59bb801f9701043c78af3adc GIT binary patch literal 25694 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 e$2R|s;eP;H9*H6KU6J1a00002t0D` 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�f;nTqKD$JSLgXL*BzU9 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/projects/application_manager/icons/multimedia.png b/wiki/dokuwiki/images/media/public/projects/application_manager/icons/multimedia.png new file mode 100755 index 0000000000000000000000000000000000000000..0059bd6bbc07d9d4a250eaae871aa5b293da84ec GIT binary patch literal 13958 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/projects/application_manager/icons/null.png b/wiki/dokuwiki/images/media/public/projects/application_manager/icons/null.png new file mode 100755 index 0000000000000000000000000000000000000000..6fd515d39beb6e349c366aba1aa0edd23548b32e GIT binary patch literal 2537 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/projects/application_manager/icons/runtime.png b/wiki/dokuwiki/images/media/public/projects/application_manager/icons/runtime.png new file mode 100755 index 0000000000000000000000000000000000000000..ff16975385c1157415c122e55446cb95498ee91e GIT binary patch literal 15411 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 d9NQH<;6K3PJz?002ovPDHLkV1jYe7i$0j literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/projects/application_manager/icons/utility.png b/wiki/dokuwiki/images/media/public/projects/application_manager/icons/utility.png new file mode 100755 index 0000000000000000000000000000000000000000..c321ab913c93a9e245739625960092304fc3365d GIT binary patch literal 18417 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 Y10Y2!{5#NLE&u=k07*qoM6N<$f;Kc3WB>pF literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/projects/application_manager/icons/webbrowser.png b/wiki/dokuwiki/images/media/public/projects/application_manager/icons/webbrowser.png new file mode 100755 index 0000000000000000000000000000000000000000..a2e5e567391bf47eed4cd21413cfb71f3ab84cc6 GIT binary patch literal 23537 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

@|xaalY-z3lSR2TLSM@i@8JM0m5dT#RtKU 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/microsoft_visual_studio.png b/wiki/dokuwiki/images/media/public/scms/microsoft_visual_studio.png new file mode 100755 index 0000000000000000000000000000000000000000..d6ce06a3681fad0dfd775578b34de9a53a3fbfb0 GIT binary patch literal 13245 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 H9q|7EXHE#W literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/microsoft_windows.png b/wiki/dokuwiki/images/media/public/scms/microsoft_windows.png new file mode 100755 index 0000000000000000000000000000000000000000..e6f9082ccfe0d5db88f4474d3af6effda04e863a GIT binary patch literal 2008 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/nvidea.png b/wiki/dokuwiki/images/media/public/scms/nvidea.png new file mode 100755 index 0000000000000000000000000000000000000000..fdb361be953c15793bf76d5a9f8cea226f6f2871 GIT binary patch literal 18683 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

Qz>^2$q0{r%bQw!R^_>HI?bj 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 M07*qoM6N<$f)`wu%%q9s5Qh_qM|0({6a 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 T@~4n*00000NkvXXu0mjf8E&xe literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/origin.png b/wiki/dokuwiki/images/media/public/scms/origin.png new file mode 100755 index 0000000000000000000000000000000000000000..f2e675d881d45d540ac3a0ba08168ae83a4e1468 GIT binary patch literal 7508 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 L4>YUQ9pnBB2e=^z literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/sickbeard.png b/wiki/dokuwiki/images/media/public/scms/sickbeard.png new file mode 100755 index 0000000000000000000000000000000000000000..5c6af6742adfed101fed156268eaa33100c2e45f GIT binary patch literal 16246 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/skype.png b/wiki/dokuwiki/images/media/public/scms/skype.png new file mode 100755 index 0000000000000000000000000000000000000000..09112a3bb274a154aeeb4397e6faabeb82b218ce GIT binary patch literal 13145 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 s;5@<{907*qoM6N<$f&(@LhyVZp literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/wget.png b/wiki/dokuwiki/images/media/public/scms/wget.png new file mode 100755 index 0000000000000000000000000000000000000000..3fb49ad7044ef43e9d3b5deabc425b12ec11d681 GIT binary patch literal 16006 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/wiki/_notes/logo.png.mno b/wiki/dokuwiki/images/media/wiki/_notes/logo.png.mno new file mode 100755 index 0000000..8595fd5 --- /dev/null +++ b/wiki/dokuwiki/images/media/wiki/_notes/logo.png.mno @@ -0,0 +1,4 @@ + + + + diff --git a/wiki/robots.txt b/wiki/robots.txt new file mode 100644 index 0000000..8f4a335 --- /dev/null +++ b/wiki/robots.txt @@ -0,0 +1,9 @@ +User-agent: * + +# example: Redirect 301 /oldpage.html /newpage.html + +Redirect 301 /wiki/public/article/150225_choose_internet_service /wiki/info/choosing_an_internet_service + +Redirect 301 /wiki/public/help/mdt/* /wiki/info/* + +Redirect 301 /wiki/public/help/mantis/* /wiki/info/* From 8fbb9d95ac452b550c65cff32a88f7b6c23437d3 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Thu, 20 Jan 2022 11:24:58 +0930 Subject: [PATCH 002/222] feat(mkdocs): Add the default config and the site layout directory issue #3 !1 --- .gitignore | 2 + mkdocs.yml | 57 +++++++++++++++++++ pages/contact.md | 4 ++ pages/index.md | 3 + pages/operations.md | 7 +++ pages/projects.md | 4 ++ pages/projects/ansible-roles/README.md | 7 +++ pages/projects/gitlab-ci/README.md | 7 +++ .../python-gitlab-management/README.md | 7 +++ pages/robots.txt | 9 +++ pages/wiki.md | 4 ++ requirements.txt | 5 ++ 12 files changed, 116 insertions(+) create mode 100644 .gitignore create mode 100644 mkdocs.yml create mode 100644 pages/contact.md create mode 100644 pages/index.md create mode 100644 pages/operations.md create mode 100644 pages/projects.md create mode 100644 pages/projects/ansible-roles/README.md create mode 100644 pages/projects/gitlab-ci/README.md create mode 100644 pages/projects/python-gitlab-management/README.md create mode 100644 pages/robots.txt create mode 100644 pages/wiki.md create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fd9ddb1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Ignore build Directory +build/ diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..a4dad85 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,57 @@ +site_name: No Fuss Computing +site_description: A wiki with random bits of information you may find useful. +site_url: https://nofusscomputing.com + +site_author: No Fuss Computing +copyright: Copyright No Fuss Computing 2021 + +#site_favicon: favicon.ico +# site_dir: 'docs/static/mkdocs_build' + +docs_dir: 'pages' +site_dir: build + +repo_name: Gitlab +repo_url: https://gitlab.com/nofusscomputing/infrastructure/website +#edit_uri: '-/blob/pages' +edit_uri: '-/blob/master/pages/' + +theme: + name: mkdocs + locale: en + + +markdown_extensions: + +# disable until can figure out +# huge emoji size +# having the svg generated and be included as the image and not a link from elsewhere. +# - pymdownx.emoji: +# emoji_index: !!python/name:pymdownx.emoji.twemoji +# emoji_generator: !!python/name:pymdownx.emoji.to_svg +## options: +## custom_icons: +## - theme/my_icons + + + +nav: +- Home: index.md + +- Wiki: wiki.md + +- Projects: + - Home: projects.md + + - Ansible Roles: projects/ansible-roles/README.md + + - Gitlab CI Templates: projects/gitlab-ci/README.md + + - Python Gitlab Management: projects/python-gitlab-management/README.md + +- Operations: + + - Home: operations.md + +- Contact Us: contact.md + diff --git a/pages/contact.md b/pages/contact.md new file mode 100644 index 0000000..026e403 --- /dev/null +++ b/pages/contact.md @@ -0,0 +1,4 @@ +# Contact Us + + +## Where you can find us diff --git a/pages/index.md b/pages/index.md new file mode 100644 index 0000000..2bbb82c --- /dev/null +++ b/pages/index.md @@ -0,0 +1,3 @@ +# No Fuss Computing + +Home Page diff --git a/pages/operations.md b/pages/operations.md new file mode 100644 index 0000000..5cc4712 --- /dev/null +++ b/pages/operations.md @@ -0,0 +1,7 @@ +# No Fuss Computing Operations + +| :red_circle: This page is a placeholder for the operations repo's docs. | +|:---| +| _If you can see this page there has been an error, please report the issue on gitlab_ | + + diff --git a/pages/projects.md b/pages/projects.md new file mode 100644 index 0000000..a55d9e5 --- /dev/null +++ b/pages/projects.md @@ -0,0 +1,4 @@ +# No Fuss Computing Projects + + +## Our Projects diff --git a/pages/projects/ansible-roles/README.md b/pages/projects/ansible-roles/README.md new file mode 100644 index 0000000..bf205ad --- /dev/null +++ b/pages/projects/ansible-roles/README.md @@ -0,0 +1,7 @@ +# Ansible Roles + +| :red_circle: This page is a placeholder for the ansible-roles repo's docs. | +|:---| +| _If you can see this page there has been an error, please report the issue on gitlab_ | + + diff --git a/pages/projects/gitlab-ci/README.md b/pages/projects/gitlab-ci/README.md new file mode 100644 index 0000000..71d8fe0 --- /dev/null +++ b/pages/projects/gitlab-ci/README.md @@ -0,0 +1,7 @@ +# Gitlab Continuous Integration Templates + +| :red_circle: This page is a placeholder for the gitlab-ci repo's docs. | +|:---| +| _If you can see this page there has been an error, please report the issue on gitlab_ | + + diff --git a/pages/projects/python-gitlab-management/README.md b/pages/projects/python-gitlab-management/README.md new file mode 100644 index 0000000..134c029 --- /dev/null +++ b/pages/projects/python-gitlab-management/README.md @@ -0,0 +1,7 @@ +# Python Gitlab Management + +| :red_circle: This page is a placeholder for the python-gitlab-management repo's docs. | +|:---| +| _If you can see this page there has been an error, please report the issue on gitlab_ | + + diff --git a/pages/robots.txt b/pages/robots.txt new file mode 100644 index 0000000..8f4a335 --- /dev/null +++ b/pages/robots.txt @@ -0,0 +1,9 @@ +User-agent: * + +# example: Redirect 301 /oldpage.html /newpage.html + +Redirect 301 /wiki/public/article/150225_choose_internet_service /wiki/info/choosing_an_internet_service + +Redirect 301 /wiki/public/help/mdt/* /wiki/info/* + +Redirect 301 /wiki/public/help/mantis/* /wiki/info/* diff --git a/pages/wiki.md b/pages/wiki.md new file mode 100644 index 0000000..18a5ddd --- /dev/null +++ b/pages/wiki.md @@ -0,0 +1,4 @@ +# Welcome to the Wiki + + +## Wiki Sections diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..3ba2de9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +mkdocs>=1.2.3 +mkdocs-material-extensions>=1.0.3 + +#pip install material +pymdown-extensions From 696138c317e0f898188b1ba9f0a3e287933f5249 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Thu, 20 Jan 2022 11:25:54 +0930 Subject: [PATCH 003/222] ci(build): Added config to build and publish to gitlab pages issue #3 !1 --- .gitlab-ci.yml | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 997df1c..fa01188 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ stages: - validation + - build - release - publish @@ -45,7 +46,22 @@ markdown lint: - "**.md" - when: never - +Static Pages: + image: python:3.7.5-buster + stage: build + before_script: + - pip install --upgrade pip -r requirements.txt + script: +# - mkdir static +# - cp README.md pages/ + - mkdocs build --clean --strict + artifacts: + paths: + - build + rules: + - if: '$CI_COMMIT_BRANCH' + when: always + - when: never Gitlab Release: @@ -57,10 +73,16 @@ pages: stage: publish script: - echo publish page + needs: ['Static Pages'] + environment: + name: staging + url: $CI_PAGES_URL artifacts: paths: - - public - only: - - master + - build + rules: + - if: '$CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != "master"' + when: always + - when: never From a02d2c3bb5fd0e933b42edce96b624ea355dcb69 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Thu, 20 Jan 2022 11:44:47 +0930 Subject: [PATCH 004/222] ci(pages): ensure the static site artifacts are available for gitlab pages issue #3 !1 --- .gitlab-ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fa01188..5391dbf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -71,15 +71,17 @@ Gitlab Release: pages: stage: publish + variables: + GIT_STRATEGY: none script: - - echo publish page + - mv build public needs: ['Static Pages'] environment: name: staging url: $CI_PAGES_URL artifacts: paths: - - build + - public rules: - if: '$CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != "master"' when: always From dde0939e1ba7a314de13774807d6830e5bdde522 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Thu, 20 Jan 2022 14:56:49 +0930 Subject: [PATCH 005/222] build(mkdocs): changed the site theme to material and setup. issue #3 !1 --- .gitignore | 1 + mkdocs.yml | 92 +++++++++++++++++-- pages/articles/index.md | 3 + pages/assets/logo.png | Bin 0 -> 3439 bytes pages/index.md | 5 + pages/{operations.md => operations/index.md} | 0 pages/{projects.md => projects/index.md} | 5 + pages/stylesheets/extra.css | 3 + pages/{wiki.md => wiki/index.md} | 0 requirements.txt | 4 +- theme-overrides/partials/footer.html | 14 +++ 11 files changed, 116 insertions(+), 11 deletions(-) create mode 100644 pages/articles/index.md create mode 100644 pages/assets/logo.png rename pages/{operations.md => operations/index.md} (100%) rename pages/{projects.md => projects/index.md} (51%) create mode 100644 pages/stylesheets/extra.css rename pages/{wiki.md => wiki/index.md} (100%) create mode 100644 theme-overrides/partials/footer.html diff --git a/.gitignore b/.gitignore index fd9ddb1..30b80a2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ # Ignore build Directory build/ +aux/ diff --git a/mkdocs.yml b/mkdocs.yml index a4dad85..ce59b01 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -3,7 +3,7 @@ site_description: A wiki with random bits of information you may find useful. site_url: https://nofusscomputing.com site_author: No Fuss Computing -copyright: Copyright No Fuss Computing 2021 +copyright: Copyright © No Fuss Computing 2021 #site_favicon: favicon.ico # site_dir: 'docs/static/mkdocs_build' @@ -11,20 +11,85 @@ copyright: Copyright No Fuss Computing 2021 docs_dir: 'pages' site_dir: build -repo_name: Gitlab +repo_name: Website +#repo_url: https://gitlab.com/nofusscomputing/infrastructure/website repo_url: https://gitlab.com/nofusscomputing/infrastructure/website #edit_uri: '-/blob/pages' -edit_uri: '-/blob/master/pages/' +#edit_uri: '-/blob/master/pages/' +edit_uri: '' theme: - name: mkdocs - locale: en + name: material + logo: assets/logo.png + custom_dir: theme-overrides + icon: + repo: fontawesome/brands/gitlab # (1)! + locale: en + font: false + features: + - navigation.tracking + - navigation.tabs + - navigation.tabs.sticky + - navigation.expand + - navigation.indexes + - toc.integrate + - navigation.top + - header.autohide + - navigation.sections + + palette: + - scheme: default + primary: indigo + accent: indigo + toggle: + icon: material/lightbulb-outline + name: Switch to dark mode + - scheme: slate + primary: indigo + accent: indigo + toggle: + icon: material/lightbulb + name: Switch to light mode + + +plugins: +# - tags: +# tags_file: tags.md + - search: + lang: en + + - git-revision-date + + + + +extra: + homepage: https://nofusscomputing.com + version: 1.0 + social: + - icon: fontawesome/brands/docker + link: https:// + - icon: fontawesome/brands/facebook + link: https://facebook.com/NoFussComputing + name: Facebook + - icon: fontawesome/brands/github + link: https:// + - icon: fontawesome/brands/gitlab + link: https:// +# - icon: fontawesome/brands/readthedocs +# link: https:// + + generator: false markdown_extensions: - + - meta + - attr_list + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji # (1)! + emoji_generator: !!python/name:pymdownx.emoji.to_alt # disable until can figure out -# huge emoji size +# huge emoji size NOTE: isnt on material theme # having the svg generated and be included as the image and not a link from elsewhere. # - pymdownx.emoji: # emoji_index: !!python/name:pymdownx.emoji.twemoji @@ -38,10 +103,13 @@ markdown_extensions: nav: - Home: index.md -- Wiki: wiki.md +- Articles: + + - articles/index.md - Projects: - - Home: projects.md + + - projects/index.md - Ansible Roles: projects/ansible-roles/README.md @@ -51,7 +119,11 @@ nav: - Operations: - - Home: operations.md + - operations/index.md + +- Wiki: + + - wiki/index.md - Contact Us: contact.md diff --git a/pages/articles/index.md b/pages/articles/index.md new file mode 100644 index 0000000..4aca86e --- /dev/null +++ b/pages/articles/index.md @@ -0,0 +1,3 @@ +# No Fuss Computing Articles + +**Under construction** diff --git a/pages/assets/logo.png b/pages/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..65ef57e1a8b772eea72fe8768e53044632a02def GIT binary patch literal 3439 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 R2Soq?002ovPDHLkV1hv%q2>Sp literal 0 HcmV?d00001 diff --git a/pages/index.md b/pages/index.md index 2bbb82c..e409579 100644 --- a/pages/index.md +++ b/pages/index.md @@ -1,3 +1,8 @@ +--- +hide: + - navigation + - toc +--- # No Fuss Computing Home Page diff --git a/pages/operations.md b/pages/operations/index.md similarity index 100% rename from pages/operations.md rename to pages/operations/index.md diff --git a/pages/projects.md b/pages/projects/index.md similarity index 51% rename from pages/projects.md rename to pages/projects/index.md index a55d9e5..359384c 100644 --- a/pages/projects.md +++ b/pages/projects/index.md @@ -1,3 +1,8 @@ +--- +tags: + - Development + - brand new +--- # No Fuss Computing Projects diff --git a/pages/stylesheets/extra.css b/pages/stylesheets/extra.css new file mode 100644 index 0000000..61bf8e5 --- /dev/null +++ b/pages/stylesheets/extra.css @@ -0,0 +1,3 @@ +html.md-footer-social a[title="Facebook"] { + color: #00acee; +} diff --git a/pages/wiki.md b/pages/wiki/index.md similarity index 100% rename from pages/wiki.md rename to pages/wiki/index.md diff --git a/requirements.txt b/requirements.txt index 3ba2de9..0656e53 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,7 @@ mkdocs>=1.2.3 mkdocs-material-extensions>=1.0.3 -#pip install material +mkdocs-material==8.1.7 +mkdocs-plugin-tags==1.0.2 +mkdocs-git-revision-date-plugin==0.3.1 pymdown-extensions diff --git a/theme-overrides/partials/footer.html b/theme-overrides/partials/footer.html new file mode 100644 index 0000000..caa78b0 --- /dev/null +++ b/theme-overrides/partials/footer.html @@ -0,0 +1,14 @@ +{#- + This file was automatically generated - do not edit +-#} +

From 2460b4c70cf3a7ccf11da60c8b356fad2fad352d Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 09:14:26 +0930 Subject: [PATCH 006/222] feat(mkdocs): add document creation and last edited date. Git clone depth must be the complete repo as the pip module requires access to the full hostory to obtain the dates for the documents. issue #3 !1 --- .gitlab-ci.yml | 2 ++ mkdocs.yml | 6 +++++- requirements.txt | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5391dbf..b52d6b1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -49,6 +49,8 @@ markdown lint: Static Pages: image: python:3.7.5-buster stage: build + variables: + GIT_DEPTH: 0 before_script: - pip install --upgrade pip -r requirements.txt script: diff --git a/mkdocs.yml b/mkdocs.yml index ce59b01..660eb1b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -58,7 +58,11 @@ plugins: - search: lang: en - - git-revision-date + - git-revision-date-localized: + type: iso_date + enable_creation_date: true + exclude: + - index.md diff --git a/requirements.txt b/requirements.txt index 0656e53..78dce9c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,5 @@ mkdocs-material-extensions>=1.0.3 mkdocs-material==8.1.7 mkdocs-plugin-tags==1.0.2 -mkdocs-git-revision-date-plugin==0.3.1 +mkdocs-git-revision-date-localized-plugin==0.11.1 pymdown-extensions From c0aa5cbe12f92cea496a902f68ce4f7114f36d1a Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 09:25:03 +0930 Subject: [PATCH 007/222] feat(footer): Add colour to the social icons within the page footer issue #3 !1 --- mkdocs.yml | 37 ++++++++++++++++++++++++------------- pages/stylesheets/extra.css | 17 +++++++++++++++-- 2 files changed, 39 insertions(+), 15 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 660eb1b..727000d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -71,27 +71,38 @@ extra: homepage: https://nofusscomputing.com version: 1.0 social: - - icon: fontawesome/brands/docker - link: https:// - - icon: fontawesome/brands/facebook - link: https://facebook.com/NoFussComputing + - link: https://hub.docker.com/u/nofusscomputing + name: DockerHub + icon: fontawesome/brands/docker + + - link: https://facebook.com/NoFussComputing name: Facebook - - icon: fontawesome/brands/github - link: https:// - - icon: fontawesome/brands/gitlab - link: https:// -# - icon: fontawesome/brands/readthedocs + icon: fontawesome/brands/facebook + + - link: https://gitlab.com/nofusscomputing + name: Gitlab + icon: fontawesome/brands/gitlab + + - link: https://github.com/NoFussComputing + name: Github + icon: fontawesome/brands/github + +# - link: https://readthedocs.org/profiles/nofusscomputing/ +# nane: ReadTheDocs +# icon: fontawesome/brands/readthedocs # link: https:// - - generator: false + + +extra_css: + - stylesheets/extra.css markdown_extensions: - meta - attr_list - pymdownx.emoji: - emoji_index: !!python/name:materialx.emoji.twemoji # (1)! - emoji_generator: !!python/name:pymdownx.emoji.to_alt + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg # disable until can figure out # huge emoji size NOTE: isnt on material theme # having the svg generated and be included as the image and not a link from elsewhere. diff --git a/pages/stylesheets/extra.css b/pages/stylesheets/extra.css index 61bf8e5..2e01d18 100644 --- a/pages/stylesheets/extra.css +++ b/pages/stylesheets/extra.css @@ -1,3 +1,16 @@ -html.md-footer-social a[title="Facebook"] { - color: #00acee; +html .md-social a[title="DockerHub"] { + color: #0DB7ED; +} + +html .md-social a[title="Facebook"] { + color: #3B5998; + +} + +html .md-social a[title="Github"] { + color: #F5F5F5; +} + +html .md-social a[title="Gitlab"] { + color: #fc6d26; } From f6d6bd627b755cafe9e45f9edd17f7436a323b4a Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 09:26:21 +0930 Subject: [PATCH 008/222] feat(markdown): Support admonations in markdown. issue #3 !1 --- mkdocs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index 727000d..cd0ae29 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -100,6 +100,9 @@ extra_css: markdown_extensions: - meta - attr_list + - admonition + - pymdownx.details + - pymdownx.superfences - pymdownx.emoji: emoji_index: !!python/name:materialx.emoji.twemoji emoji_generator: !!python/name:materialx.emoji.to_svg From 47bfd4e5cc9c19da8c82e37eb7513f1b75d68f45 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 09:27:34 +0930 Subject: [PATCH 009/222] feat(markdown): added ability to colour by brand name. Brands supported - docker - facebook - github - gitlab example for icon: ':fontawesome-brands-docker:{ .docker }' issue #3 !1 --- pages/stylesheets/extra.css | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pages/stylesheets/extra.css b/pages/stylesheets/extra.css index 2e01d18..e3a3149 100644 --- a/pages/stylesheets/extra.css +++ b/pages/stylesheets/extra.css @@ -14,3 +14,20 @@ html .md-social a[title="Github"] { html .md-social a[title="Gitlab"] { color: #fc6d26; } + +.docker { + color: #0DB7ED; +} + +.facebook { + color: #3B5998; +} + +.github { + color: #333; +} + +.gitlab { + color: #fc6d26; +} + From 268e076e9a04fb071490f4d532aa3cdb53c4ee06 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 09:50:01 +0930 Subject: [PATCH 010/222] feat(contact): updated the page content to include how to fix an issue with a page. issue #3 !1 --- pages/contact.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/pages/contact.md b/pages/contact.md index 026e403..e2d71c6 100644 --- a/pages/contact.md +++ b/pages/contact.md @@ -1,4 +1,25 @@ # Contact Us -## Where you can find us +We can be found in the following places on the internet: + +- [:fontawesome-brands-docker:{ .docker } Docker Hub](https://hub.docker.com/u/nofusscomputing) + +- [:fontawesome-brands-facebook:{ .facebook } Facebook](https://www.facebook.com/NoFussComputing) + +- [:fontawesome-brands-github:{ .github } Github](https://github.com/NoFussComputing) + +- [:fontawesome-brands-gitlab:{ .gitlab } Gitlab](https://gitlab.com/nofusscomputing) + +- [:books: Read the Docs](https://readthedocs.org/profiles/nofusscomputing/) + +## Found an issue with a page on this website? + +On every page of this website that you are able to edit, you will find this icon :material-pencil:. Located in the top right hand corner of the content. After clicking on this icon, you will be taken to the git repository that contains the page in question for you to edit. An understanding of Git and Gitlab is required for the use of this method. + +For the non-developers out there, you can still contribute by submitting an issue about the related page. To do this find this icon :fontawesome-brands-gitlab: on the subject page. Copy the page url to your clipboard, then click :fontawesome-brands-gitlab: icon. You will be taken to Gitlab.com and the repository in question. There will be a menu on the left hand side of the screen, where you will click issues. On the issues page loading, click new issue and use a relevant template for your report. _**Don't forget to include the url of the subject page and to ensure there is enough details for us to rectify the issue.**_ + + +??? info "Where is the owner located??" + + Jon can be found on [:fontawesome-brands-github:{ .github } Github](https://github.com/jon-nfc) and [:fontawesome-brands-gitlab:{ .gitlab } Gitlab](https://gitlab.com/jon_nfc) From 6667f4f0761dcba22a1825c9514963931618140e Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 10:56:37 +0930 Subject: [PATCH 011/222] feat(article): migrated choosing an internet service from old wiki Pages: new file: pages/articles/2015/choose_internet_service.md modified: pages/articles/index.md modified: pages/robots.txt deleted: wiki/current/info/150225_choose_internet_service.txt Also added a redirect to the robots.txt file issue #3 !1 --- mkdocs.yml | 4 + .../articles/2015/choose_internet_service.md | 156 ++++++++++++++++++ pages/articles/index.md | 5 + pages/robots.txt | 2 +- .../info/150225_choose_internet_service.txt | 109 ------------ 5 files changed, 166 insertions(+), 110 deletions(-) create mode 100644 pages/articles/2015/choose_internet_service.md delete mode 100755 wiki/current/info/150225_choose_internet_service.txt diff --git a/mkdocs.yml b/mkdocs.yml index cd0ae29..ea29f2a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -125,6 +125,10 @@ nav: - articles/index.md + - 2015: + + - articles/2015/choose_internet_service.md + - Projects: - projects/index.md diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md new file mode 100644 index 0000000..939b60c --- /dev/null +++ b/pages/articles/2015/choose_internet_service.md @@ -0,0 +1,156 @@ +--- +tags: + - "2015" + - Feburary + - ADSL + - Archive + - Article + - Binary + - Broadband + - Internet + - NBN + - Australia + +--- + +# Choosing an Internet Service + +!!! attention + This post is considered an archived post. + + This article was originally posted on 25 Feb 2015. It has been migrated from its original source _http://nofusscomputing.com/wiki/public/article/150225_choose_internet_service_ to here. + + +!!! info + This article has been targeted towards the common mass who don’t understand the technical details and considerations for choosing an Internet package. + +The Internet has now become a mainstream item within the average Australian home. The Internet has become so ingrained within our daily lives that for those of us that were around when the Internet was born have actually forgotten what life was like without it. I remember when I was growing up that if we wanted to learn about something you would go to the local library or to a family/friends house to look through their Encyclopaedia Britannica which more often than not was at least five years out of date. Believe it or not that was only 15 to 20 years ago. I would consider myself lucky in the regard we were introduced to the Internet in high school way back when Web Crawler was what Google is today and the only thing of any value was searching for random phrases like porn homework answers. It was a very new concept to have the Internet or even access, which was often met with confusion and a sheer lack of knowledge. Being part of that generation we grew with the Internet and became the first generation to learn about it, and to the behest of the generations before us who were either left in the dark or were very slow on the uptake. + +Now if I haven't lost you already and hopefully by the end of this article I have been able to provide you with more insight on being able to choose an Internet service from an ISP with a little more of an understanding of the technology behind that Internet connection. + +Below I will cover a little of the technical details and hopefully bringing into perspective, so you can better understand what is being explained to you. To do this I will use the flow of water methodology. + +## Bandwidth + +Bandwidth is the actual speed of your Internet connection and its unit of measure is bits per second. So basically if you think water pipe, only so much water will flow through a water pipe but if you increase it’s pressure you will receive more water. For the actual Internet connection different technology is used to essentially achieve the same +thing. + +## Quota + +This is how much you can download and/or upload from the Internet. Its unit of measure is bytes. Think of a water tank, larger the tank the more quota you have available. This will be set by your ISP and 9 times out of 10 will be limited. Every Time you connect to the Internet you are using this available quota. + +## Theory + +Now to fully understand the quota and bandwidth I will have to cover a little bit of computer theory. Computers compute information by doing mathematical equations. The only numbers a computer recognizes are Base 2. Base 2 numbering means it uses the first 2 numbers, being zero and one. In common computer terms this is called binary which is always in the computer world as a minimum 8 bits wide i.e. 01010101. Each digit of the number is a bit, four bits to a nibble and 2 nibbles to a byte. Unlike the English language; Binary is read from right to left and each one or zero, within a binary number is actually counting from 1 through to 255, which takes 8 bits of information. Binary is a notational reference system, so starting from right to left each digit represents another number, the first number being one, each number after that is double the number before it so the next number would be two, then four, eight, 16, 32, 64 finishing with the leftmost digit as 128. Confusing? Not really, when the bit is zero you don't add each notated number, you only add if the bit is one. So 0001 would be one, 0010 would be two, 0011 is three and so on. + +Communication between different components or computers (network or The Internet) is measured in bits per second or bps (lowercase). Computers store data in bytes or B (uppercase). Each unit of measure has multipliers like normal numbers, computers use the following multipliers, Kilo (K) for thousands, Mega (M) for millions, Giga (G) for billions, Tera (T) for trillions and Peta (P) for quintillion's. The conversion from bits to bytes is a division of 8. + +So why use different units of measure for the same data? simply put, computers are electronic devices which communicate with an electronic signal with 1 being on and zero being off; basically the signal is either on or off. So the transmission of data is serial or singular and storage is in parallel or stored in octets which is a group of bits. Hence bits and bytes. generally you will find lowercase letters are used to represent bits and uppercase letters are used for bytes. + +### Connection types + +The common Internet connection types in Australia are ADSL or via the Mobile network. Very rarely used but still available if you look hard enough dial-up. and the newest and greatest is the National Broadband Network or NBN. With the exception of the NBN all of the above connection types will have a max speed. This max speed is a theoretical maximum speed and there are many factors which generally slow down your connection. All connection methods have a technological peak, which basically means there is no known way to improve that technology any further. + +### Dial-Up + +Dial-UpInternet was the first mainstream way to connect to the Internet. For this to happen you needed an active phone line, a computer with a MODEM (short for modulator/demodulator) and you would plug a phone cable into your computer, which would dial a number to connect to the Internet. At its technological peak the max theoretical download speed was 56kb and approx 33kb up. Dial-up modems are generally part of the computer. The downside to Dial-up is that it relies on good quality phone cables, basically if you have a bad phone line you will have unstable and slower Internet. Dial-up also suffers from signal attenuation which means the further away from the telephone exchange the lower the speed your Internet is going to be. The biggest downside to having Dial-up Internet is that you can either be connected to the Internet or on the phone, not both. + +### ADSL + +Asynchronous Digital Subscriber Line or ADSL is the most common Internet in Australia. This is also commonly referred to as broadband Internet, the biggest difference between ADSL and Dial-up is that it is always on. When ADSL first arrived it had a speed of 1.5mb, which was a massive increase over Dial-up. As ADSL evolved its speed increased, when this occurred its name slightly changed to suit the technological level, ADSL1, ADSL2 and finishing with ADSL2+ which has a maximum theoretical download speed of 24Mb and 2Mb Up. An ADSL connection like dial-up Internet requires a modem and suffers with the same line issues. Where ADSL is an improvement over Dial-up is that you can still make telephone calls when you are have an active Internet connection for this you will need a line filter. To utilise an ADSL connection you require an ADSL modem. + +### Mobile Network + +Again this method of connecting to the Internet has been around for a while and with the invention of the smartphone has become quite a common way to “surf the Web”. 4th generation or 4G being the current technology has a max theoretical speed of 50Mb. The connection speed is shared amongst all users utilizing that mobile tower to connect to the Internet, and if you don’t have good mobile reception you will not have a stable Internet connection. + +### NBN + +The National broadband network or NBN as it is known is the new way to connect to the Internet. The NBN unlike Dial-up or ADSL does not use a phone line to connect to the Internet. The NBN uses fiber optic cable, which uses light not electricity to communicate. Fiber optic cable can be thinner than a human hair. Fiber Optic cable, or fiber networks have one purpose; transmit data, not voice or electronic signals like a copper cable Since fiber is designed for networking you require a router to connect to it. A router looks very similar to an ADSL modem. Unlike the other Internet connection methods above, communication in either direction is the same. Within Australia this is not the case, and for whatever reason you will find most NBN capable ISPs will still have packages with different upload and download speeds. Fiber networks are very mature and their speed is actual, not theoretical maximums and are capable of transmitting data at 10gbps. Using that speed for connecting to the Internet is overkill and you will find that most ISPs offer no connection speed above 100mbps at the moment. + +## Choosing a suitable Internet service + +Now hopefully by now I have given you a little better understanding of the connection types and terminology in relation to choosing an Internet service; believe me it is still a cumbersome task. Yes there are a lot of things to consider. From a technical standpoint the following should be taken into account: + +- availability in your area + +- what you will be using the Internet for + +- bang for buck + +### Availability in Your Area + +For a majority of Australians, ADSL is the best Internet service you will have available. The most annoying thing when trying to connect an ADSL service is the wait time. This wait time is due to the requirement for a technician to have to go to your local telephone exchange to actually connect you, that is if there are spare ports available in the exchange. If though, you can get the NBN, go for it. Seriously you are being foolish if you don't. Why? the NBN is an actual data network and the speed you pay for is what you get, overall the NBN is more reliable. + +### What You Will be Using the Internet For? + +Most website designers will aim for a page load time of within one-two seconds; Even now how website technology is becoming more media focused, I would not recommend any speed lower that ADSL2+(24mbps) or 12mbps for the NBN. Why the different speeds? Remember that ADSL is a theoretical maximum, on average. Most ADSL users will have an actual connection speed of between 8mbps-22mbps and the NBN is actual speed. Anything faster than this for just “surfing the web” is overkill, and a waste of money. Where would you require a faster connection speed? if you start to use services like netflix and/or Foxtel IPTV to stream videos. Having more than ~5 users, may also be a consideration for a speed increase. How much quota do you need? if you have had the Internet before, go look at your previous bills, most of the time you will see what you used for the billing period, use this figure as a basis to guesstimate how much quota you are going to need. If you have never had an Internet package before then as a guide I would recommend nothing less than 10GB quota per month for the average light Internet user. I can't emphasize this enough, please do your research before you take this as gospel. Most people do know someone who “knows boats” would be able to assist in assessing how much quota you may require. + +### Bang for Buck + +Read the fine print………. READ THE FINE PRINT……… oh, did I mention fine print? Every Internet package has fine print. This fine print will cover things like: + +- what is unmetered((this is a category of sites that you can use without it being counted towards your quota.)) + +- how much quota you have, read carefully some ISPs will charge by the megabyte if you go over + +- what happens when you reach your quota limit (good ISPs will shape your speed ((slow your Internet connection speed))) + +- what you should not do with your Internet package (some ISPs won’t allow you to host your own website.) + +- contract period + +- exit fees associated with leaving your contract early + +- fees associated with moving house + +- support + +- your responsibilities + +### Further Considerations + +- "**Unlimited Packages"** Some ISPs do offer "unlimited packages". Please read the fine print so you can get the definition of unlimited as sometimes unlimited does not exactly mean unlimited. Some ISPs have been know to use peak and off-peak times, during peak you will have a quota and off peak is “unlimited”. A big consideration for unlimited or large packages with lower download speeds is calculating what you could actually download in that billing period. This is a simple task and would use the following formula. + + (Billing Period Days x seconds in day) × max download speed in bits ÷ 8 = max bytes for period + + Example: + + - Billing Period days = 30 + + - Second in one day = 86,400 + + - Max download speed = 22,000,000 + + - ( 30 x 86,400 ) × 22,000,000 ÷ 8 = 7,128,000,000,000Bytes or 7.128TB + + So with the example above a package with a quota above 7.128TB with a download speed of 22mb would be a waste of money. + +- **Bundled Items** We have all seen and heard of them. + + - "Select our Internet Package for $120 a month and we will give you a telephone with free calls, 200gb of download and if you sign up for a 24month contract we will throw in a free iPad" + + - With the exception of a modem-if you don't have one; be very careful of falling into this trap. These “Bundled Packages” are plain and simply designed to get your business. Believe me when I say you can get all of this for a hell of a lot cheaper. Again READ THE FINE PRINT and calculate the cost of the whole contract period including any hidden fees and you will find that these are quite expensive packages. A simple way to test these packages is how much is thrown in, the more free stuff that is included outside of the Internet package, then the more desperate they are for your business. Listen to your gut and the age old saying "If it's too good to be true, than it probably is". Once in my life time I have seen one of these packages and it was too good to be true, but turned out to actually be worth while in the long run, again this was more than likely a “once in a lifetime good package” + +- **Naked ADSL** works exactly the same as normal ADSL Internet but you don’t have to pay for the phone line as it is included in the “Naked ADSL package” if you don’t use the telephone much or you are utilizing VOIP choosing one of these packages can save you some money. Like ADSL this is only available in certain areas, Please confirm with your ISP for availability. + + +- **Support** It's common practice for ISPs to outsource the first stage of customer support. This problem is a plague that needs to be truncated from the IT((Information Technology)) industry. Why? 9 times out of 10 the person on the other end of the phone either does not have a good grasp on our native language or has an accent that is so thick you can not understand them, which makes it very difficult for the hearing impaired. When this occurs the assistance you called for doesn't happen, and is escalated to someone else in the chain who may or may not be able to help you. In the end you are stuck with no internet and built up frustration from a 1:30h phone call. + +There are however some ISPs who are old school. they will give you a callback after being on hold for a few minutes and if your assistance call needs to be escalated will either call you back or give a detailed handover to the next person you need to speak to. bottom line if you are not technically minded than ask around to find a good ISP who can assist you and be wary of outsourced tech support. + +## Conclusion + +Lets face it, The Internet has made our lives easier. You can now sit in your lounge room and read this long, very mind numbing article on how to choose a better Internet Service, do your Banking, Pay Bills, Buy Goods, look at porn and best of all place video calls to family and friends. What will the future hold? Who knows but given how far technology has evolved in the last 50 years, I think the next 50 will yield even more from this simple little invention courtesy of DARPA. + +Like this article? Please consider buying me a coffee. Donations can be accepted via PayPal via our store at No Fuss Computing + +Some ISPs in Australia: + +- Internode + +- IINet + +- WestNet + +!!! warning + The information contained within this article based on the opinion of the author and is provided for informational purposes only. Before utilizing any information or advice from this article you are encouraged to do your own research diff --git a/pages/articles/index.md b/pages/articles/index.md index 4aca86e..e5f8745 100644 --- a/pages/articles/index.md +++ b/pages/articles/index.md @@ -1,3 +1,8 @@ # No Fuss Computing Articles **Under construction** + + +## 2015 + +- [Choosing an internet service](2015/choose_internet_service.md) diff --git a/pages/robots.txt b/pages/robots.txt index 8f4a335..20d847a 100644 --- a/pages/robots.txt +++ b/pages/robots.txt @@ -2,7 +2,7 @@ User-agent: * # example: Redirect 301 /oldpage.html /newpage.html -Redirect 301 /wiki/public/article/150225_choose_internet_service /wiki/info/choosing_an_internet_service +Redirect 301 /wiki/public/article/150225_choose_internet_service /articles/2015/choose_internet_service Redirect 301 /wiki/public/help/mdt/* /wiki/info/* diff --git a/wiki/current/info/150225_choose_internet_service.txt b/wiki/current/info/150225_choose_internet_service.txt deleted file mode 100755 index cf02b4c..0000000 --- a/wiki/current/info/150225_choose_internet_service.txt +++ /dev/null @@ -1,109 +0,0 @@ -====== Choosing an Internet Service ====== - -This article has been targeted towards the common mass who don’t understand the technical details and considerations for choosing an Internet package. - -The Internet has now become a mainstream item within the average Australian home. The Internet has become so ingrained within our daily lives that for those of us that were around when the Internet was born have actually forgotten what life was like without it. I remember when I was growing up that if we wanted to learn about something you would go to the local library or to a family/friends house to look through their Encyclopaedia Britannica which more often than not was at least five years out of date. Believe it or not that was only 15 to 20 years ago. -I would consider myself lucky in the regard we were introduced to the Internet in high school way back when [[http://webcrawler.com|Web Crawler]] was what Google is today and the only thing of any value was searching for random phrases like porn homework answers. It was a very new concept to have the Internet or even access, which was often met with confusion and a sheer lack of knowledge. Being part of that generation we grew with the Internet and became the first generation to learn about it, and to the behest of the generations before us who were either left in the dark or were very slow on the uptake. - -Now if I haven't lost you already and hopefully by the end of this article I have been able to provide you with more insight on being able to choose an Internet service from an ISP with a little more of an understanding of the technology behind that Internet connection. - -Below I will cover a little of the technical details and hopefully bringing into perspective, so you can better understand what is being explained to you. To do this I will use the flow of water methodology. - -===== Bandwidth ===== -Bandwidth is the actual speed of your Internet connection and its unit of measure is bits per second. So basically if you think water pipe, only so much water will flow through a water pipe but if you increase it’s pressure you will receive more water. For the actual Internet connection different technology is used to essentially achieve the same thing. - -===== Quota ===== -This is how much you can download and/or upload from the Internet. Its unit of measure is bytes. Think of a water tank, larger the tank the more quota you have available. This will be set by your ISP and 9 times out of 10 will be limited. Every Time you connect to the Internet you are using this available quota. - -===== Theory ===== -Now to fully understand the quota and bandwidth I will have to cover a little bit of computer theory. Computers compute information by doing mathematical equations. The only numbers a computer recognizes are [[wp>Binary_number|Base 2]]. Base 2 numbering means it uses the first 2 numbers, being zero and one. In common computer terms this is called binary which is always in the computer world as a minimum 8 bits wide i.e. 01010101. Each digit of the number is a bit, four bits to a nibble and 2 nibbles to a byte. Unlike the English language; Binary is read from right to left and each one or zero, within a binary number is actually counting from 1 through to 255, which takes 8 bits of information. Binary is a [[wp>Notation|notational reference system]], so starting from right to left each digit represents another number, the first number being one, each number after that is double the number before it so the next number would be two, then four, eight, 16, 32, 64 finishing with the leftmost digit as 128. -Confusing? Not really, when the bit is zero you don't add each notated number, you only add if the bit is one. So 0001 would be one, 0010 would be two, 0011 is three and so on. - -Communication between different components or computers (network or The Internet) is measured in bits per second or bps (lowercase). Computers store data in bytes or B (uppercase). Each unit of measure has multipliers like normal numbers, computers use the following multipliers, Kilo (K) for thousands, Mega (M) for millions, Giga (G) for billions, Tera (T) for trillions and Peta (P) for quintillion's. The conversion from bits to bytes is a division of 8. - -So why use different units of measure for the same data? simply put, computers are electronic devices which communicate with an electronic signal with 1 being on and zero being off; basically the signal is either on or off. So the transmission of data is serial or singular and storage is in parallel or stored in octets which is a group of bits. Hence bits and bytes. generally you will find lowercase letters are used to represent bits and uppercase letters are used for bytes. - - -===== Connection types ===== -The common Internet connection types in Australia are ADSL or via the Mobile network. Very rarely used but still available if you look hard enough dial-up. and the newest and greatest is the National Broadband Network or NBN. With the exception of the NBN all of the above connection types will have a max speed. This max speed is a theoretical maximum speed and there are many factors which generally slow down your connection. All connection methods have a technological peak, which basically means there is no known way to improve that technology any further. - -==== Dial-Up ==== -[[wp>56_kbit/s_modem|Dial-Up]] Internet was the first mainstream way to connect to the Internet. For this to happen you needed an active phone line, a computer with a MODEM (short for modulator/demodulator) and you would plug a phone cable into your computer, which would dial a number to connect to the Internet. At its technological peak the max theoretical download speed was 56kb and approx 33kb up. Dial-up modems are generally part of the computer. The downside to Dial-up is that it relies on good quality phone cables, basically if you have a bad phone line you will have unstable and slower Internet. Dial-up also suffers from signal attenuation which means the further away from the telephone exchange the lower the speed your Internet is going to be. The biggest downside to having Dial-up Internet is that you can either be connected to the Internet or on the phone, not both. - -==== ADSL ==== -[[wp>Asymmetric_digital_subscriber_line|Asynchronous Digital Subscriber Line]] or ADSL is the most common Internet in Australia. This is also commonly referred to as broadband Internet, the biggest difference between ADSL and Dial-up is that it is always on. When ADSL first arrived it had a speed of 1.5mb, which was a massive increase over Dial-up. As ADSL evolved its speed increased, when this occurred its name slightly changed to suit the technological level, ADSL1, ADSL2 and finishing with ADSL2+ which has a maximum theoretical download speed of 24Mb and 2Mb Up. An ADSL connection like dial-up Internet requires a modem and suffers with the same line issues. Where ADSL is an improvement over Dial-up is that you can still make telephone calls when you are have an active Internet connection for this you will need a line filter. To utilise an ADSL connection you require an ADSL modem. - -==== Mobile Network ==== -Again this method of connecting to the Internet has been around for a while and with the invention of the smartphone has become quite a common way to “surf the Web”. 4th generation or 4G being the current technology has a max theoretical speed of 50Mb. The connection speed is shared amongst all users utilizing that mobile tower to connect to the Internet, and if you don’t have good mobile reception you will not have a stable Internet connection. - -==== NBN ==== -The National broadband network or NBN as it is known is the new way to connect to the Internet. The NBN unlike Dial-up or ADSL does not use a phone line to connect to the Internet. The NBN uses [[wp>Optical_fiber_cable|fiber optic cable]], which uses light not electricity to communicate. Fiber optic cable can be thinner than a human hair. Fiber Optic cable, or fiber networks have one purpose; transmit data, not voice or electronic signals like a [[wp>Copper_wire_and_cable|copper cable]]. Since fiber is designed for networking you require a router to connect to it. A router looks very similar to an ADSL modem. Unlike the other Internet connection methods above, communication in either direction is the same. Within Australia this is not the case, and for whatever reason you will find most NBN capable ISPs will still have packages with different upload and download speeds. Fiber networks are very mature and their speed is actual, not theoretical maximums and are capable of transmitting data at 10gbps. Using that speed for connecting to the Internet is overkill and you will find that most ISPs offer no connection speed above 100mbps at the moment. - - -===== Choosing a suitable Internet service ===== -Now hopefully by now I have given you a little better understanding of the connection types and terminology in relation to choosing an Internet service; believe me it is still a cumbersome task. Yes there are a lot of things to consider. From a technical standpoint the following should be taken into account: - * availability in your area - * what you will be using the Internet for - * bang for buck - - -==== Availability in Your Area ==== -For a majority of Australians, ADSL is the best Internet service you will have available. The most annoying thing when trying to connect an ADSL service is the wait time. This wait time is due to the requirement for a technician to have to go to your local [[wp>Telephone_exchange|telephone exchange]] to actually connect you, that is if there are spare ports available in the exchange. If though, you can get the NBN, go for it. Seriously you are being foolish if you don't. Why? the NBN is an actual data network and the speed you pay for is what you get, overall the NBN is more reliable. - -==== What You Will be Using the Internet For? ==== -Most website designers will aim for a page load time of within one-two seconds; Even now how website technology is becoming more media focused, I would not recommend any speed lower that ADSL2+(24mbps) or 12mbps for the NBN. Why the different speeds? Remember that ADSL is a theoretical maximum, on average. Most ADSL users will have an actual connection speed of between 8mbps-22mbps and the NBN is actual speed. Anything faster than this for just “surfing the web” is overkill, and a waste of money. Where would you require a faster connection speed? if you start to use services like netflix and/or Foxtel[[wp>IPTV| IPTV]] to stream videos. Having more than ~5 users, may also be a consideration for a speed increase. -How much quota do you need? if you have had the Internet before, go look at your previous bills, most of the time you will see what you used for the billing period, use this figure as a basis to guesstimate how much quota you are going to need. If you have never had an Internet package before then as a guide I would recommend nothing less than 10GB quota per month for the average light Internet user. I can't emphasize this enough, please do your research before you take this as gospel. Most people do know someone who “knows boats” would be able to assist in assessing how much quota you may require. - -==== Bang for Buck ==== -Read the fine print………. READ THE FINE PRINT……… oh, did I mention fine print? Every Internet package has fine print. This fine print will cover things like: - * what is unmetered((this is a category of sites that you can use without it being counted towards your quota.)) - * how much quota you have, read carefully some ISPs will charge by the megabyte if you go over - * what happens when you reach your quota limit (good ISPs will shape your speed ((slow your Internet connection speed))) - * what you should not do with your Internet package (some ISPs won’t allow you to host your own website.) - * contract period - * exit fees associated with leaving your contract early - * fees associated with moving house - * support - * your responsibilities - - -==== Further Considerations ==== -**“Unlimited Packages”** Some ISPs do offer “unlimited packages”. Please read the fine print so you can get the definition of unlimited as sometimes unlimited does not exactly mean unlimited. Some ISPs have been know to use peak and off-peak times, during peak you will have a quota and off peak is “unlimited”. -A big consideration for unlimited or large packages with lower download speeds is calculating what you could actually download in that billing period. This is a simple task and would use the following formula. - -(Billing Period Days x seconds in day) × max download speed in bits ÷ 8 = max bytes for period - -Example:\\ -Billing Period days = 30\\ -Second in one day = 86,400\\ -Max download speed = 22,000,000\\ -\\ -( 30 x 86,400 ) × 22,000,000 ÷ 8 = 7,128,000,000,000Bytes or 7.128TB - -So with the example above a package with a quota above 7.128TB with a download speed of 22mb would be a waste of money. - - -**Bundled Items** We have all seen and heard of them. -//"Select our Internet Package for $120 a month and we will give you a telephone with free calls, 200gb of download and if you sign up for a 24month contract we will throw in a free iPad"// - -With the exception of a modem-if you don't have one; be very careful of falling into this trap. These "Bundled Packages" are plain and simply designed to get your business. Believe me when I say you can get all of this for a hell of a lot cheaper. Again __READ THE FINE PRINT__ and calculate the cost of the whole contract period including any hidden fees and you will find that these are quite expensive packages. A simple way to test these packages is how much is thrown in, the more free stuff that is included outside of the Internet package, then the more desperate they are for your business. Listen to your gut and the age old saying //"If it's too good to be true, than it probably is"//. Once in my life time I have seen one of these packages and it was too good to be true, but turned out to actually be worth while in the long run, again this was more than likely a "once in a lifetime good package" - -**Naked ADSL** works exactly the same as normal ADSL Internet but you don’t have to pay for the phone line as it is included in the “Naked ADSL package” if you don’t use the telephone much or you are utilizing VOIP choosing one of these packages can save you some money. Like ADSL this is only available in certain areas, Please confirm with your ISP for availability. - -**Support** It's common practice for ISPs to outsource the first stage of customer support. This problem is a plague that needs to be truncated from the IT((Information Technology)) industry. Why? 9 times out of 10 the person on the other end of the phone either does not have a good grasp on our native language or has an accent that is so thick you can not understand them, which makes it very difficult for the hearing impaired. When this occurs the assistance you called for doesn't happen, and is escalated to someone else in the chain who may or may not be able to help you. In the end you are stuck with no internet and built up frustration from a 1:30h phone call.\\ -There are however some ISPs who are old school. they will give you a callback after being on hold for a few minutes and if your assistance call needs to be escalated will either call you back or give a detailed handover to the next person you need to speak to. bottom line if you are not technically minded than ask around to find a good ISP who can assist you and be wary of outsourced tech support. - - - -===== Conclusion ===== -Lets face it, The Internet has made our lives easier. You can now sit in your lounge room and read this long, very mind numbing article on how to choose a better Internet Service, do your Banking, Pay Bills, Buy Goods, look at porn and best of all place video calls to family and friends. What will the future hold? Who knows but given how far technology has evolved in the last 50 years, I think the next 50 will yield even more from this simple little invention courtesy of [[wp>darpa|DARPA]]. - -Like this article? Please consider buying me a coffee. Donations can be accepted via PayPal via our store at [[NFC>product-category/donation/|No Fuss Computing]] - -Some ISPs in Australia: - - [[http://internode.on.net|Internode]] - - [[http://iinet.net.au|IINet]] - - [[http://westnet.com.au|WestNet]] - -The information contained within this article based on the opinion of the author and is provided for informational purposes only. Before utilizing any information or advice from this article you are encouraged to do your own research - From c6de8bc9600a9c740660b8523f2efdd33a879b9e Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 11:40:07 +0930 Subject: [PATCH 012/222] feat(operations): Added markdown syntax page. Page Changes: new file: pages/operations/syntax.md modified: pages/robots.txt old wiki page: wiki/syntax.txt Also added a robots.txt redirect to new location issue #3 !1 --- mkdocs.yml | 4 ++++ pages/operations/syntax.md | 15 +++++++++++++++ pages/robots.txt | 4 ++++ 3 files changed, 23 insertions(+) create mode 100644 pages/operations/syntax.md diff --git a/mkdocs.yml b/mkdocs.yml index ea29f2a..6f19da4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -143,6 +143,10 @@ nav: - operations/index.md + - Development: + + - operations/syntax.md + - Wiki: - wiki/index.md diff --git a/pages/operations/syntax.md b/pages/operations/syntax.md new file mode 100644 index 0000000..b9a2f40 --- /dev/null +++ b/pages/operations/syntax.md @@ -0,0 +1,15 @@ +--- +tags: + - Development + - Markdown +--- + +# Supported Markdown Syntax + +!!! Notice + This page is still being constructed + + +_This website uses markdown documents to create the pages, please see the [reference guide](https://squidfunk.github.io/mkdocs-material/reference/) for further items that can be used._ + + diff --git a/pages/robots.txt b/pages/robots.txt index 20d847a..99b763b 100644 --- a/pages/robots.txt +++ b/pages/robots.txt @@ -4,6 +4,10 @@ User-agent: * Redirect 301 /wiki/public/article/150225_choose_internet_service /articles/2015/choose_internet_service +Redirect 301 /wiki/syntax /operations/syntax + + + Redirect 301 /wiki/public/help/mdt/* /wiki/info/* Redirect 301 /wiki/public/help/mantis/* /wiki/info/* From 59c2593c68fbc3f5b5d9e553e328586ce0811859 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 11:58:36 +0930 Subject: [PATCH 013/222] feat(sitemap): remove sitemap as the changed dates for files is wrong. needs to be investigated why the dates for file changes are wrong. issue #3 !1 --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b52d6b1..bac6821 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -57,6 +57,7 @@ Static Pages: # - mkdir static # - cp README.md pages/ - mkdocs build --clean --strict + - rm build/sitemap* artifacts: paths: - build From 893d3dfd5c393131f69fddd7d5e80d3f025b48bb Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 12:13:38 +0930 Subject: [PATCH 014/222] ci(markdown_lint): disable line length for markdown files MR !1 --- .markdownlint.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .markdownlint.json diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000..aec8fd5 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,3 @@ +{ + "line-length": false +} From 3a08f14d74899d2f2200503db3ca1bd96ffa859f Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 12:33:55 +0930 Subject: [PATCH 015/222] refactor(markdown_lint): clean up linting errors. MR !1 --- .markdownlint.json | 3 +- mkdocs.yml | 14 --------- .../articles/2015/choose_internet_service.md | 31 +++++++------------ pages/articles/index.md | 3 -- pages/contact.md | 4 +-- pages/operations/index.md | 2 -- pages/operations/syntax.md | 3 -- pages/projects/ansible-roles/README.md | 2 -- pages/projects/gitlab-ci/README.md | 2 -- pages/projects/index.md | 1 - .../python-gitlab-management/README.md | 2 -- pages/wiki/index.md | 1 - wiki/current/index.md | 3 -- 13 files changed, 15 insertions(+), 56 deletions(-) delete mode 100644 wiki/current/index.md diff --git a/.markdownlint.json b/.markdownlint.json index aec8fd5..299afd7 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,3 +1,4 @@ { - "line-length": false + "line-length": false, + "no-inline-html": false } diff --git a/mkdocs.yml b/mkdocs.yml index 6f19da4..d18b8fd 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -63,9 +63,6 @@ plugins: enable_creation_date: true exclude: - index.md - - - extra: homepage: https://nofusscomputing.com @@ -106,17 +103,6 @@ markdown_extensions: - pymdownx.emoji: emoji_index: !!python/name:materialx.emoji.twemoji emoji_generator: !!python/name:materialx.emoji.to_svg -# disable until can figure out -# huge emoji size NOTE: isnt on material theme -# having the svg generated and be included as the image and not a link from elsewhere. -# - pymdownx.emoji: -# emoji_index: !!python/name:pymdownx.emoji.twemoji -# emoji_generator: !!python/name:pymdownx.emoji.to_svg -## options: -## custom_icons: -## - theme/my_icons - - nav: - Home: index.md diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md index 939b60c..458fb81 100644 --- a/pages/articles/2015/choose_internet_service.md +++ b/pages/articles/2015/choose_internet_service.md @@ -20,7 +20,6 @@ tags: This article was originally posted on 25 Feb 2015. It has been migrated from its original source _http://nofusscomputing.com/wiki/public/article/150225_choose_internet_service_ to here. - !!! info This article has been targeted towards the common mass who don’t understand the technical details and considerations for choosing an Internet package. @@ -79,7 +78,7 @@ Now hopefully by now I have given you a little better understanding of the conne ### Availability in Your Area -For a majority of Australians, ADSL is the best Internet service you will have available. The most annoying thing when trying to connect an ADSL service is the wait time. This wait time is due to the requirement for a technician to have to go to your local telephone exchange to actually connect you, that is if there are spare ports available in the exchange. If though, you can get the NBN, go for it. Seriously you are being foolish if you don't. Why? the NBN is an actual data network and the speed you pay for is what you get, overall the NBN is more reliable. +For a majority of Australians, ADSL is the best Internet service you will have available. The most annoying thing when trying to connect an ADSL service is the wait time. This wait time is due to the requirement for a technician to have to go to your local telephone exchange to actually connect you, that is if there are spare ports available in the exchange. If though, you can get the NBN, go for it. Seriously you are being foolish if you don't. Why? the NBN is an actual data network and the speed you pay for is what you get, overall the NBN is more reliable. ### What You Will be Using the Internet For? @@ -111,29 +110,23 @@ Read the fine print………. READ THE FINE PRINT……… oh, did I mention fin - "**Unlimited Packages"** Some ISPs do offer "unlimited packages". Please read the fine print so you can get the definition of unlimited as sometimes unlimited does not exactly mean unlimited. Some ISPs have been know to use peak and off-peak times, during peak you will have a quota and off peak is “unlimited”. A big consideration for unlimited or large packages with lower download speeds is calculating what you could actually download in that billing period. This is a simple task and would use the following formula. - (Billing Period Days x seconds in day) × max download speed in bits ÷ 8 = max bytes for period - - Example: - - - Billing Period days = 30 - - - Second in one day = 86,400 - - - Max download speed = 22,000,000 - - - ( 30 x 86,400 ) × 22,000,000 ÷ 8 = 7,128,000,000,000Bytes or 7.128TB - - So with the example above a package with a quota above 7.128TB with a download speed of 22mb would be a waste of money. + > (Billing Period Days x seconds in day) × max download speed in bits ÷ 8 = max bytes for period + >Example: + > + >- Billing Period days = 30 + >- Second in one day = 86,400 + >- Max download speed = 22,000,000 + >- ( 30 x 86,400 ) × 22,000,000 ÷ 8 = 7,128,000,000,000Bytes or 7.128TB + >So with the example above a package with a quota above 7.128TB with a download speed of 22mb would be a waste of money. - **Bundled Items** We have all seen and heard of them. - - "Select our Internet Package for $120 a month and we will give you a telephone with free calls, 200gb of download and if you sign up for a 24month contract we will throw in a free iPad" + - "Select our Internet Package for $120 a month and we will give you a telephone with free calls, 200gb of download and if you sign up for a 24month contract we will throw in a free iPad" - - With the exception of a modem-if you don't have one; be very careful of falling into this trap. These “Bundled Packages” are plain and simply designed to get your business. Believe me when I say you can get all of this for a hell of a lot cheaper. Again READ THE FINE PRINT and calculate the cost of the whole contract period including any hidden fees and you will find that these are quite expensive packages. A simple way to test these packages is how much is thrown in, the more free stuff that is included outside of the Internet package, then the more desperate they are for your business. Listen to your gut and the age old saying "If it's too good to be true, than it probably is". Once in my life time I have seen one of these packages and it was too good to be true, but turned out to actually be worth while in the long run, again this was more than likely a “once in a lifetime good package” + - With the exception of a modem-if you don't have one; be very careful of falling into this trap. These “Bundled Packages” are plain and simply designed to get your business. Believe me when I say you can get all of this for a hell of a lot cheaper. Again READ THE FINE PRINT and calculate the cost of the whole contract period including any hidden fees and you will find that these are quite expensive packages. A simple way to test these packages is how much is thrown in, the more free stuff that is included outside of the Internet package, then the more desperate they are for your business. Listen to your gut and the age old saying "If it's too good to be true, than it probably is". Once in my life time I have seen one of these packages and it was too good to be true, but turned out to actually be worth while in the long run, again this was more than likely a “once in a lifetime good package” - **Naked ADSL** works exactly the same as normal ADSL Internet but you don’t have to pay for the phone line as it is included in the “Naked ADSL package” if you don’t use the telephone much or you are utilizing VOIP choosing one of these packages can save you some money. Like ADSL this is only available in certain areas, Please confirm with your ISP for availability. - - **Support** It's common practice for ISPs to outsource the first stage of customer support. This problem is a plague that needs to be truncated from the IT((Information Technology)) industry. Why? 9 times out of 10 the person on the other end of the phone either does not have a good grasp on our native language or has an accent that is so thick you can not understand them, which makes it very difficult for the hearing impaired. When this occurs the assistance you called for doesn't happen, and is escalated to someone else in the chain who may or may not be able to help you. In the end you are stuck with no internet and built up frustration from a 1:30h phone call. There are however some ISPs who are old school. they will give you a callback after being on hold for a few minutes and if your assistance call needs to be escalated will either call you back or give a detailed handover to the next person you need to speak to. bottom line if you are not technically minded than ask around to find a good ISP who can assist you and be wary of outsourced tech support. @@ -152,5 +145,5 @@ Some ISPs in Australia: - WestNet -!!! warning +!!! warning The information contained within this article based on the opinion of the author and is provided for informational purposes only. Before utilizing any information or advice from this article you are encouraged to do your own research diff --git a/pages/articles/index.md b/pages/articles/index.md index e5f8745..2768da4 100644 --- a/pages/articles/index.md +++ b/pages/articles/index.md @@ -1,8 +1,5 @@ # No Fuss Computing Articles -**Under construction** - - ## 2015 - [Choosing an internet service](2015/choose_internet_service.md) diff --git a/pages/contact.md b/pages/contact.md index e2d71c6..594bce7 100644 --- a/pages/contact.md +++ b/pages/contact.md @@ -1,6 +1,5 @@ # Contact Us - We can be found in the following places on the internet: - [:fontawesome-brands-docker:{ .docker } Docker Hub](https://hub.docker.com/u/nofusscomputing) @@ -15,11 +14,10 @@ We can be found in the following places on the internet: ## Found an issue with a page on this website? -On every page of this website that you are able to edit, you will find this icon :material-pencil:. Located in the top right hand corner of the content. After clicking on this icon, you will be taken to the git repository that contains the page in question for you to edit. An understanding of Git and Gitlab is required for the use of this method. +On every page of this website that you are able to edit, you will find this icon :material-pencil:. Located in the top right hand corner of the content. After clicking on this icon, you will be taken to the git repository that contains the page in question for you to edit. An understanding of Git and Gitlab is required for the use of this method. For the non-developers out there, you can still contribute by submitting an issue about the related page. To do this find this icon :fontawesome-brands-gitlab: on the subject page. Copy the page url to your clipboard, then click :fontawesome-brands-gitlab: icon. You will be taken to Gitlab.com and the repository in question. There will be a menu on the left hand side of the screen, where you will click issues. On the issues page loading, click new issue and use a relevant template for your report. _**Don't forget to include the url of the subject page and to ensure there is enough details for us to rectify the issue.**_ - ??? info "Where is the owner located??" Jon can be found on [:fontawesome-brands-github:{ .github } Github](https://github.com/jon-nfc) and [:fontawesome-brands-gitlab:{ .gitlab } Gitlab](https://gitlab.com/jon_nfc) diff --git a/pages/operations/index.md b/pages/operations/index.md index 5cc4712..581e92b 100644 --- a/pages/operations/index.md +++ b/pages/operations/index.md @@ -3,5 +3,3 @@ | :red_circle: This page is a placeholder for the operations repo's docs. | |:---| | _If you can see this page there has been an error, please report the issue on gitlab_ | - - diff --git a/pages/operations/syntax.md b/pages/operations/syntax.md index b9a2f40..a16a91e 100644 --- a/pages/operations/syntax.md +++ b/pages/operations/syntax.md @@ -9,7 +9,4 @@ tags: !!! Notice This page is still being constructed - _This website uses markdown documents to create the pages, please see the [reference guide](https://squidfunk.github.io/mkdocs-material/reference/) for further items that can be used._ - - diff --git a/pages/projects/ansible-roles/README.md b/pages/projects/ansible-roles/README.md index bf205ad..a6f9c26 100644 --- a/pages/projects/ansible-roles/README.md +++ b/pages/projects/ansible-roles/README.md @@ -3,5 +3,3 @@ | :red_circle: This page is a placeholder for the ansible-roles repo's docs. | |:---| | _If you can see this page there has been an error, please report the issue on gitlab_ | - - diff --git a/pages/projects/gitlab-ci/README.md b/pages/projects/gitlab-ci/README.md index 71d8fe0..689577e 100644 --- a/pages/projects/gitlab-ci/README.md +++ b/pages/projects/gitlab-ci/README.md @@ -3,5 +3,3 @@ | :red_circle: This page is a placeholder for the gitlab-ci repo's docs. | |:---| | _If you can see this page there has been an error, please report the issue on gitlab_ | - - diff --git a/pages/projects/index.md b/pages/projects/index.md index 359384c..31cacbb 100644 --- a/pages/projects/index.md +++ b/pages/projects/index.md @@ -5,5 +5,4 @@ tags: --- # No Fuss Computing Projects - ## Our Projects diff --git a/pages/projects/python-gitlab-management/README.md b/pages/projects/python-gitlab-management/README.md index 134c029..88c8a37 100644 --- a/pages/projects/python-gitlab-management/README.md +++ b/pages/projects/python-gitlab-management/README.md @@ -3,5 +3,3 @@ | :red_circle: This page is a placeholder for the python-gitlab-management repo's docs. | |:---| | _If you can see this page there has been an error, please report the issue on gitlab_ | - - diff --git a/pages/wiki/index.md b/pages/wiki/index.md index 18a5ddd..592ea91 100644 --- a/pages/wiki/index.md +++ b/pages/wiki/index.md @@ -1,4 +1,3 @@ # Welcome to the Wiki - ## Wiki Sections diff --git a/wiki/current/index.md b/wiki/current/index.md deleted file mode 100644 index 56519d2..0000000 --- a/wiki/current/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Welcome to the Wiki - - From 830371c691e283418e373da881f13727ef63ec17 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 12:40:34 +0930 Subject: [PATCH 016/222] feat(mkdocs): add lists and task lists to markdown MR !1 --- mkdocs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index d18b8fd..540298b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -95,6 +95,9 @@ extra_css: markdown_extensions: + - def_list + - pymdownx.tasklist: + custom_checkbox: true - meta - attr_list - admonition From c2d3a178a5ab335bd769a19e9a88839f17021bca Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 12:50:11 +0930 Subject: [PATCH 017/222] refactor(article): fixing lists in choosing an internet service MR !1 --- .../articles/2015/choose_internet_service.md | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md index 458fb81..764b070 100644 --- a/pages/articles/2015/choose_internet_service.md +++ b/pages/articles/2015/choose_internet_service.md @@ -70,11 +70,11 @@ The National broadband network or NBN as it is known is the new way to connect t Now hopefully by now I have given you a little better understanding of the connection types and terminology in relation to choosing an Internet service; believe me it is still a cumbersome task. Yes there are a lot of things to consider. From a technical standpoint the following should be taken into account: -- availability in your area +- availability in your area -- what you will be using the Internet for +- what you will be using the Internet for -- bang for buck +- bang for buck ### Availability in Your Area @@ -88,23 +88,23 @@ Most website designers will aim for a page load time of within one-two seconds; Read the fine print………. READ THE FINE PRINT……… oh, did I mention fine print? Every Internet package has fine print. This fine print will cover things like: -- what is unmetered((this is a category of sites that you can use without it being counted towards your quota.)) +- what is unmetered((this is a category of sites that you can use without it being counted towards your quota.)) -- how much quota you have, read carefully some ISPs will charge by the megabyte if you go over +- how much quota you have, read carefully some ISPs will charge by the megabyte if you go over -- what happens when you reach your quota limit (good ISPs will shape your speed ((slow your Internet connection speed))) +- what happens when you reach your quota limit (good ISPs will shape your speed ((slow your Internet connection speed))) -- what you should not do with your Internet package (some ISPs won’t allow you to host your own website.) +- what you should not do with your Internet package (some ISPs won’t allow you to host your own website.) -- contract period +- contract period -- exit fees associated with leaving your contract early +- exit fees associated with leaving your contract early -- fees associated with moving house +- fees associated with moving house -- support +- support -- your responsibilities +- your responsibilities ### Further Considerations @@ -139,11 +139,12 @@ Lets face it, The Internet has made our lives easier. You can now sit in your lo Some ISPs in Australia: -- Internode +- Internode -- IINet +- IINet -- WestNet +- WestNet !!! warning The information contained within this article based on the opinion of the author and is provided for informational purposes only. Before utilizing any information or advice from this article you are encouraged to do your own research + From 449ec4a9fc5d8421eea4cb79477d2124fc0a308c Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 21 Jan 2022 13:02:42 +0930 Subject: [PATCH 018/222] refactor: linting error. removed trailing empty line in choosing an internet service. MR !1 --- pages/articles/2015/choose_internet_service.md | 1 - 1 file changed, 1 deletion(-) diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md index 764b070..8da9c6c 100644 --- a/pages/articles/2015/choose_internet_service.md +++ b/pages/articles/2015/choose_internet_service.md @@ -147,4 +147,3 @@ Some ISPs in Australia: !!! warning The information contained within this article based on the opinion of the author and is provided for informational purposes only. Before utilizing any information or advice from this article you are encouraged to do your own research - From b0c91fa68bda0fac2c4492a6fb227d0970a8f1d0 Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 21 Jan 2022 05:53:21 +0000 Subject: [PATCH 019/222] ci(markdown_lint): set unordered list indentation to four. MR !1 --- .markdownlint.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.markdownlint.json b/.markdownlint.json index 299afd7..6fc0c6a 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,4 +1,7 @@ { "line-length": false, - "no-inline-html": false + "no-inline-html": false, + "MD007": { + "indent": 4 + } } From 2a16ca065c08759b31ee24f53d1e0ac67a406a9d Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 21 Jan 2022 06:02:28 +0000 Subject: [PATCH 020/222] refactor: md linting error, ul must be indent four spaces MR !1 --- pages/articles/2015/choose_internet_service.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md index 8da9c6c..fea7b71 100644 --- a/pages/articles/2015/choose_internet_service.md +++ b/pages/articles/2015/choose_internet_service.md @@ -121,9 +121,9 @@ Read the fine print………. READ THE FINE PRINT……… oh, did I mention fin - **Bundled Items** We have all seen and heard of them. - - "Select our Internet Package for $120 a month and we will give you a telephone with free calls, 200gb of download and if you sign up for a 24month contract we will throw in a free iPad" + - "Select our Internet Package for $120 a month and we will give you a telephone with free calls, 200gb of download and if you sign up for a 24month contract we will throw in a free iPad" - - With the exception of a modem-if you don't have one; be very careful of falling into this trap. These “Bundled Packages” are plain and simply designed to get your business. Believe me when I say you can get all of this for a hell of a lot cheaper. Again READ THE FINE PRINT and calculate the cost of the whole contract period including any hidden fees and you will find that these are quite expensive packages. A simple way to test these packages is how much is thrown in, the more free stuff that is included outside of the Internet package, then the more desperate they are for your business. Listen to your gut and the age old saying "If it's too good to be true, than it probably is". Once in my life time I have seen one of these packages and it was too good to be true, but turned out to actually be worth while in the long run, again this was more than likely a “once in a lifetime good package” + - With the exception of a modem-if you don't have one; be very careful of falling into this trap. These “Bundled Packages” are plain and simply designed to get your business. Believe me when I say you can get all of this for a hell of a lot cheaper. Again READ THE FINE PRINT and calculate the cost of the whole contract period including any hidden fees and you will find that these are quite expensive packages. A simple way to test these packages is how much is thrown in, the more free stuff that is included outside of the Internet package, then the more desperate they are for your business. Listen to your gut and the age old saying "If it's too good to be true, than it probably is". Once in my life time I have seen one of these packages and it was too good to be true, but turned out to actually be worth while in the long run, again this was more than likely a “once in a lifetime good package” - **Naked ADSL** works exactly the same as normal ADSL Internet but you don’t have to pay for the phone line as it is included in the “Naked ADSL package” if you don’t use the telephone much or you are utilizing VOIP choosing one of these packages can save you some money. Like ADSL this is only available in certain areas, Please confirm with your ISP for availability. From f77b36a138809b50389dce016557497fbaaf5adb Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 09:13:20 +0930 Subject: [PATCH 021/222] feat(plugin): cloned plugin tags repo so it can be customized and used cloned from: https://github.com/ginsburgnm/mkdocs-plugin-tags.git module version 1.0.2 from pypi git details: commit: fb2be9ac09889c9baf88358a216a13ed8b4a04a2 branch details: (grafted, HEAD -> master, tag: 1.0.2, origin/master, origin/HEAD) issue #3 --- .../mkdocs-plugin-tags/.gitattributes | 1 + custom-plugins/mkdocs-plugin-tags/.gitignore | 125 + custom-plugins/mkdocs-plugin-tags/LICENSE.md | 8 + custom-plugins/mkdocs-plugin-tags/MANIFEST.in | 2 + custom-plugins/mkdocs-plugin-tags/README.md | 124 + .../mkdocs-plugin-tags/requirements.txt | 1 + custom-plugins/mkdocs-plugin-tags/setup.cfg | 27 + custom-plugins/mkdocs-plugin-tags/setup.py | 20 + .../mkdocs-plugin-tags/tags/__init__.py | 3 + .../mkdocs-plugin-tags/tags/_version.py | 644 +++++ .../mkdocs-plugin-tags/tags/plugin.py | 133 ++ .../tags/templates/tags.md.template | 14 + .../mkdocs-plugin-tags/versioneer.py | 2109 +++++++++++++++++ 13 files changed, 3211 insertions(+) create mode 100644 custom-plugins/mkdocs-plugin-tags/.gitattributes create mode 100644 custom-plugins/mkdocs-plugin-tags/.gitignore create mode 100644 custom-plugins/mkdocs-plugin-tags/LICENSE.md create mode 100644 custom-plugins/mkdocs-plugin-tags/MANIFEST.in create mode 100644 custom-plugins/mkdocs-plugin-tags/README.md create mode 100644 custom-plugins/mkdocs-plugin-tags/requirements.txt create mode 100644 custom-plugins/mkdocs-plugin-tags/setup.cfg create mode 100644 custom-plugins/mkdocs-plugin-tags/setup.py create mode 100644 custom-plugins/mkdocs-plugin-tags/tags/__init__.py create mode 100644 custom-plugins/mkdocs-plugin-tags/tags/_version.py create mode 100644 custom-plugins/mkdocs-plugin-tags/tags/plugin.py create mode 100644 custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template create mode 100644 custom-plugins/mkdocs-plugin-tags/versioneer.py diff --git a/custom-plugins/mkdocs-plugin-tags/.gitattributes b/custom-plugins/mkdocs-plugin-tags/.gitattributes new file mode 100644 index 0000000..5d0a907 --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/.gitattributes @@ -0,0 +1 @@ +tags/_version.py export-subst diff --git a/custom-plugins/mkdocs-plugin-tags/.gitignore b/custom-plugins/mkdocs-plugin-tags/.gitignore new file mode 100644 index 0000000..f56be71 --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/.gitignore @@ -0,0 +1,125 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +# docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ diff --git a/custom-plugins/mkdocs-plugin-tags/LICENSE.md b/custom-plugins/mkdocs-plugin-tags/LICENSE.md new file mode 100644 index 0000000..9ac887d --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/LICENSE.md @@ -0,0 +1,8 @@ +# MIT License +Copyright (C) 2018 Laurent Franceschetti + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/custom-plugins/mkdocs-plugin-tags/MANIFEST.in b/custom-plugins/mkdocs-plugin-tags/MANIFEST.in new file mode 100644 index 0000000..ebd0c96 --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/MANIFEST.in @@ -0,0 +1,2 @@ +include versioneer.py +include tags/_version.py diff --git a/custom-plugins/mkdocs-plugin-tags/README.md b/custom-plugins/mkdocs-plugin-tags/README.md new file mode 100644 index 0000000..f1054de --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/README.md @@ -0,0 +1,124 @@ +# Tags + +Support for tags in the yaml-metadata in the header of markdown files. + +Extracts this metadata and creates a "Tags" page which lists all tags +and all pages for each tag. + +## Quick Demo + +Install this plugin (it will also install mkdocs if required) + +```bash +pip install mkdocs-plugin-tags +``` + +Create a new documentation folder: + +```bash +mkdocs new demo +``` + +Edit the `.md` files to add initial metadata. Currently, the metadata has to be +enclosed in `---` lines, and must include a `title:` property +(otherwise the page will appear as "untitled" in the tags page). So, for example: + +```bash +cd demo +cd docs +cat > index.md +--- +title: Welcome +tags: + - testing + - unimportant +--- +# Welcome to MkDocs + +For full documentation visit [mkdocs.org](https://mkdocs.org). + +^D +``` + +Edit `mkdocs.yml` to include this plugin: + +```yaml +plugins: + - tags: +``` + +Run the server: + +```bash +mkdocs serve --livereload +``` + +Visit the URL `/tags` (it should appear in the nav panel). +This is an auto-generated page which contains the tags as level 2 headers, +and under each tag, a listing of the pages which declare that tag in the +metadata section. + +![example screenshot](doc/imgs/screenshot.png) + +## How it works + +On each build (even with `--livereload`), all the `.md` files composing the +site are scanned, their "triple-dash-delimted" yaml header is extracted and +parsed, and the list of tags is collected. + +After that, a new temporal file is created (by default in `aux/tags.md`, but +this is customizable) which contains the generated tags page, in markdown +format. This file is not in the documents folder to avoid retriggering a +build, but it is added to the list of files to be converted to HTML by mkdocs. + +## Customization + +The layout of the tags page is a markdown file with jinja2 embedded contents. +The package provides such a template by default, with the following content: + +```markdown +--- +title: Tags +--- +# Contents grouped by tag + +{% for tag, pages in tags %} + +## {{tag}} +{% for page in pages %} + * [{{page.title}}]({{page.filename}}) +{% endfor %} + +{% endfor %} +``` + +You can style the `h2.tag` element via CSS, if you want. + +You can also provide your own markdown template, in case that you want a +different layout or metadata. The `page` object contains all the metadata +in a mkdocs page, and in addition a `.filename` attribute, which contains +the file name of the source of the page (relative to the docs folder), +which can be used to link to that page. + +The full customizable options for the plugin are: + +* `tags_folder`: Folder in which the auxiliar tags markdown file will be written + (`aux` by default, relative to the folder in which `mkdocs` is invoked). + It can be set to an absolute path, such as `/tmp/mysite/aux`. + The required folders are created. +* `tags_template`: path to the file which contains the markdown-jinja template + for the tags page. It is `None` by default, which means that the + package-provided template is used. It can be an absolute path, + or relative to the folder in which `mkdocs` is run. +* `css_name`: this allows you to pick what name styles the tag that appears on + the top of the page that contains a tag. This way things won't be overloaded + +For example, this can be put at `mkdocs.yaml`: + +```yaml +plugins: + - search + - tags: + tags_folder: /tmp/mysite/aux + tags_template: docs/theme/tags.md.template +``` diff --git a/custom-plugins/mkdocs-plugin-tags/requirements.txt b/custom-plugins/mkdocs-plugin-tags/requirements.txt new file mode 100644 index 0000000..fe9469e --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/requirements.txt @@ -0,0 +1 @@ +mkdocs==1.2.3 diff --git a/custom-plugins/mkdocs-plugin-tags/setup.cfg b/custom-plugins/mkdocs-plugin-tags/setup.cfg new file mode 100644 index 0000000..93c5585 --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/setup.cfg @@ -0,0 +1,27 @@ +[metadata] +name = mkdocs-plugin-tags +author = nginsburg +author_email = ginsburgnm@gmail.com +url = https://github.com/ginsburgnm/mkdocs-plugin-tags +description = "Create tags in mkdocs" +long_description_content_type = text/markdown +long_description = file: README.md +license = MIT +keywords = "mkdocs python markdown tags" +classifiers = + Intended Audience :: Developers + License :: OSI Approved :: MIT License + Operating System :: OS Independent + Intended Audience :: Information Technology + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Topic :: Security :: Cryptography + +[versioneer] +VCS = git +style = pep440 +versionfile_source = tags/_version.py +versionfile_build = tags/_version.py +tag_prefix = +parentdir_prefix = tags- diff --git a/custom-plugins/mkdocs-plugin-tags/setup.py b/custom-plugins/mkdocs-plugin-tags/setup.py new file mode 100644 index 0000000..7a330b5 --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/setup.py @@ -0,0 +1,20 @@ +""" +Setup the plugin +""" +from setuptools import setup, find_packages +import versioneer + +setup( + version=versioneer.get_version(), + python_requires='>=3.6', + install_requires=[ + 'mkdocs==1.2.3', + ], + packages=find_packages(exclude=['*.tests']), + package_data={'tags': ['templates/*.md.template']}, + entry_points={ + 'mkdocs.plugins': [ + 'tags = tags.plugin:TagsPlugin' + ] + } +) diff --git a/custom-plugins/mkdocs-plugin-tags/tags/__init__.py b/custom-plugins/mkdocs-plugin-tags/tags/__init__.py new file mode 100644 index 0000000..ecd3379 --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/tags/__init__.py @@ -0,0 +1,3 @@ + +from . import _version +__version__ = _version.get_versions()['version'] diff --git a/custom-plugins/mkdocs-plugin-tags/tags/_version.py b/custom-plugins/mkdocs-plugin-tags/tags/_version.py new file mode 100644 index 0000000..adc1549 --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/tags/_version.py @@ -0,0 +1,644 @@ + +# This file helps to compute a version number in source trees obtained from +# git-archive tarball (such as those provided by githubs download-from-tag +# feature). Distribution tarballs (built by setup.py sdist) and build +# directories (produced by setup.py build) will contain a much shorter file +# that just contains the computed version number. + +# This file is released into the public domain. Generated by +# versioneer-0.21 (https://github.com/python-versioneer/python-versioneer) + +"""Git implementation of _version.py.""" + +import errno +import os +import re +import subprocess +import sys +from typing import Callable, Dict + + +def get_keywords(): + """Get the keywords needed to look up the version information.""" + # these strings will be replaced by git during git-archive. + # setup.py/versioneer.py will grep for the variable names, so they must + # each be defined on a line of their own. _version.py will just call + # get_keywords(). + git_refnames = "$Format:%d$" + git_full = "$Format:%H$" + git_date = "$Format:%ci$" + keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} + return keywords + + +class VersioneerConfig: + """Container for Versioneer configuration parameters.""" + + +def get_config(): + """Create, populate and return the VersioneerConfig() object.""" + # these strings are filled in when 'setup.py versioneer' creates + # _version.py + cfg = VersioneerConfig() + cfg.VCS = "git" + cfg.style = "pep440" + cfg.tag_prefix = "" + cfg.parentdir_prefix = "tags-" + cfg.versionfile_source = "tags/_version.py" + cfg.verbose = False + return cfg + + +class NotThisMethod(Exception): + """Exception raised if a method is not valid for the current scenario.""" + + +LONG_VERSION_PY: Dict[str, str] = {} +HANDLERS: Dict[str, Dict[str, Callable]] = {} + + +def register_vcs_handler(vcs, method): # decorator + """Create decorator to mark a method as the handler of a VCS.""" + def decorate(f): + """Store f in HANDLERS[vcs][method].""" + if vcs not in HANDLERS: + HANDLERS[vcs] = {} + HANDLERS[vcs][method] = f + return f + return decorate + + +def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, + env=None): + """Call the given command(s).""" + assert isinstance(commands, list) + process = None + for command in commands: + try: + dispcmd = str([command] + args) + # remember shell=False, so use git.cmd on windows, not just git + process = subprocess.Popen([command] + args, cwd=cwd, env=env, + stdout=subprocess.PIPE, + stderr=(subprocess.PIPE if hide_stderr + else None)) + break + except OSError: + e = sys.exc_info()[1] + if e.errno == errno.ENOENT: + continue + if verbose: + print("unable to run %s" % dispcmd) + print(e) + return None, None + else: + if verbose: + print("unable to find command, tried %s" % (commands,)) + return None, None + stdout = process.communicate()[0].strip().decode() + if process.returncode != 0: + if verbose: + print("unable to run %s (error)" % dispcmd) + print("stdout was %s" % stdout) + return None, process.returncode + return stdout, process.returncode + + +def versions_from_parentdir(parentdir_prefix, root, verbose): + """Try to determine the version from the parent directory name. + + Source tarballs conventionally unpack into a directory that includes both + the project name and a version string. We will also support searching up + two directory levels for an appropriately named parent directory + """ + rootdirs = [] + + for _ in range(3): + dirname = os.path.basename(root) + if dirname.startswith(parentdir_prefix): + return {"version": dirname[len(parentdir_prefix):], + "full-revisionid": None, + "dirty": False, "error": None, "date": None} + rootdirs.append(root) + root = os.path.dirname(root) # up a level + + if verbose: + print("Tried directories %s but none started with prefix %s" % + (str(rootdirs), parentdir_prefix)) + raise NotThisMethod("rootdir doesn't start with parentdir_prefix") + + +@register_vcs_handler("git", "get_keywords") +def git_get_keywords(versionfile_abs): + """Extract version information from the given file.""" + # the code embedded in _version.py can just fetch the value of these + # keywords. When used from setup.py, we don't want to import _version.py, + # so we do it with a regexp instead. This function is not used from + # _version.py. + keywords = {} + try: + with open(versionfile_abs, "r") as fobj: + for line in fobj: + if line.strip().startswith("git_refnames ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["refnames"] = mo.group(1) + if line.strip().startswith("git_full ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["full"] = mo.group(1) + if line.strip().startswith("git_date ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["date"] = mo.group(1) + except OSError: + pass + return keywords + + +@register_vcs_handler("git", "keywords") +def git_versions_from_keywords(keywords, tag_prefix, verbose): + """Get version information from git keywords.""" + if "refnames" not in keywords: + raise NotThisMethod("Short version file found") + date = keywords.get("date") + if date is not None: + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + + # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant + # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 + # -like" string, which we must then edit to make compliant), because + # it's been around since git-1.5.3, and it's too difficult to + # discover which version we're using, or to work around using an + # older one. + date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) + refnames = keywords["refnames"].strip() + if refnames.startswith("$Format"): + if verbose: + print("keywords are unexpanded, not using") + raise NotThisMethod("unexpanded keywords, not a git-archive tarball") + refs = {r.strip() for r in refnames.strip("()").split(",")} + # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of + # just "foo-1.0". If we see a "tag: " prefix, prefer those. + TAG = "tag: " + tags = {r[len(TAG):] for r in refs if r.startswith(TAG)} + if not tags: + # Either we're using git < 1.8.3, or there really are no tags. We use + # a heuristic: assume all version tags have a digit. The old git %d + # expansion behaves like git log --decorate=short and strips out the + # refs/heads/ and refs/tags/ prefixes that would let us distinguish + # between branches and tags. By ignoring refnames without digits, we + # filter out many common branch names like "release" and + # "stabilization", as well as "HEAD" and "master". + tags = {r for r in refs if re.search(r'\d', r)} + if verbose: + print("discarding '%s', no digits" % ",".join(refs - tags)) + if verbose: + print("likely tags: %s" % ",".join(sorted(tags))) + for ref in sorted(tags): + # sorting will prefer e.g. "2.0" over "2.0rc1" + if ref.startswith(tag_prefix): + r = ref[len(tag_prefix):] + # Filter out refs that exactly match prefix or that don't start + # with a number once the prefix is stripped (mostly a concern + # when prefix is '') + if not re.match(r'\d', r): + continue + if verbose: + print("picking %s" % r) + return {"version": r, + "full-revisionid": keywords["full"].strip(), + "dirty": False, "error": None, + "date": date} + # no suitable tags, so version is "0+unknown", but full hex is still there + if verbose: + print("no suitable tags, using unknown + full revision id") + return {"version": "0+unknown", + "full-revisionid": keywords["full"].strip(), + "dirty": False, "error": "no suitable tags", "date": None} + + +@register_vcs_handler("git", "pieces_from_vcs") +def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): + """Get version from 'git describe' in the root of the source tree. + + This only gets called if the git-archive 'subst' keywords were *not* + expanded, and _version.py hasn't already been rewritten with a short + version string, meaning we're inside a checked out source tree. + """ + GITS = ["git"] + TAG_PREFIX_REGEX = "*" + if sys.platform == "win32": + GITS = ["git.cmd", "git.exe"] + TAG_PREFIX_REGEX = r"\*" + + _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, + hide_stderr=True) + if rc != 0: + if verbose: + print("Directory %s not under git control" % root) + raise NotThisMethod("'git rev-parse --git-dir' returned error") + + # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] + # if there isn't one, this yields HEX[-dirty] (no NUM) + describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty", + "--always", "--long", + "--match", + "%s%s" % (tag_prefix, TAG_PREFIX_REGEX)], + cwd=root) + # --long was added in git-1.5.5 + if describe_out is None: + raise NotThisMethod("'git describe' failed") + describe_out = describe_out.strip() + full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) + if full_out is None: + raise NotThisMethod("'git rev-parse' failed") + full_out = full_out.strip() + + pieces = {} + pieces["long"] = full_out + pieces["short"] = full_out[:7] # maybe improved later + pieces["error"] = None + + branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], + cwd=root) + # --abbrev-ref was added in git-1.6.3 + if rc != 0 or branch_name is None: + raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") + branch_name = branch_name.strip() + + if branch_name == "HEAD": + # If we aren't exactly on a branch, pick a branch which represents + # the current commit. If all else fails, we are on a branchless + # commit. + branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) + # --contains was added in git-1.5.4 + if rc != 0 or branches is None: + raise NotThisMethod("'git branch --contains' returned error") + branches = branches.split("\n") + + # Remove the first line if we're running detached + if "(" in branches[0]: + branches.pop(0) + + # Strip off the leading "* " from the list of branches. + branches = [branch[2:] for branch in branches] + if "master" in branches: + branch_name = "master" + elif not branches: + branch_name = None + else: + # Pick the first branch that is returned. Good or bad. + branch_name = branches[0] + + pieces["branch"] = branch_name + + # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] + # TAG might have hyphens. + git_describe = describe_out + + # look for -dirty suffix + dirty = git_describe.endswith("-dirty") + pieces["dirty"] = dirty + if dirty: + git_describe = git_describe[:git_describe.rindex("-dirty")] + + # now we have TAG-NUM-gHEX or HEX + + if "-" in git_describe: + # TAG-NUM-gHEX + mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) + if not mo: + # unparsable. Maybe git-describe is misbehaving? + pieces["error"] = ("unable to parse git-describe output: '%s'" + % describe_out) + return pieces + + # tag + full_tag = mo.group(1) + if not full_tag.startswith(tag_prefix): + if verbose: + fmt = "tag '%s' doesn't start with prefix '%s'" + print(fmt % (full_tag, tag_prefix)) + pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" + % (full_tag, tag_prefix)) + return pieces + pieces["closest-tag"] = full_tag[len(tag_prefix):] + + # distance: number of commits since tag + pieces["distance"] = int(mo.group(2)) + + # commit: short hex revision ID + pieces["short"] = mo.group(3) + + else: + # HEX: no tags + pieces["closest-tag"] = None + count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root) + pieces["distance"] = int(count_out) # total number of commits + + # commit date: see ISO-8601 comment in git_versions_from_keywords() + date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) + + return pieces + + +def plus_or_dot(pieces): + """Return a + if we don't already have one, else return a .""" + if "+" in pieces.get("closest-tag", ""): + return "." + return "+" + + +def render_pep440(pieces): + """Build up version string, with post-release "local version identifier". + + Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you + get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty + + Exceptions: + 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += plus_or_dot(pieces) + rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0+untagged.%d.g%s" % (pieces["distance"], + pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def render_pep440_branch(pieces): + """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . + + The ".dev0" means not master branch. Note that .dev0 sorts backwards + (a feature branch will appear "older" than the master branch). + + Exceptions: + 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0" + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+untagged.%d.g%s" % (pieces["distance"], + pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def pep440_split_post(ver): + """Split pep440 version string at the post-release segment. + + Returns the release segments before the post-release and the + post-release version number (or -1 if no post-release segment is present). + """ + vc = str.split(ver, ".post") + return vc[0], int(vc[1] or 0) if len(vc) == 2 else None + + +def render_pep440_pre(pieces): + """TAG[.postN.devDISTANCE] -- No -dirty. + + Exceptions: + 1: no tags. 0.post0.devDISTANCE + """ + if pieces["closest-tag"]: + if pieces["distance"]: + # update the post release segment + tag_version, post_version = pep440_split_post(pieces["closest-tag"]) + rendered = tag_version + if post_version is not None: + rendered += ".post%d.dev%d" % (post_version+1, pieces["distance"]) + else: + rendered += ".post0.dev%d" % (pieces["distance"]) + else: + # no commits, use the tag as the version + rendered = pieces["closest-tag"] + else: + # exception #1 + rendered = "0.post0.dev%d" % pieces["distance"] + return rendered + + +def render_pep440_post(pieces): + """TAG[.postDISTANCE[.dev0]+gHEX] . + + The ".dev0" means dirty. Note that .dev0 sorts backwards + (a dirty tree will appear "older" than the corresponding clean one), + but you shouldn't be releasing software with -dirty anyways. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%d" % pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "g%s" % pieces["short"] + else: + # exception #1 + rendered = "0.post%d" % pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + rendered += "+g%s" % pieces["short"] + return rendered + + +def render_pep440_post_branch(pieces): + """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . + + The ".dev0" means not master branch. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%d" % pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "g%s" % pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0.post%d" % pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+g%s" % pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def render_pep440_old(pieces): + """TAG[.postDISTANCE[.dev0]] . + + The ".dev0" means dirty. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%d" % pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + else: + # exception #1 + rendered = "0.post%d" % pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + return rendered + + +def render_git_describe(pieces): + """TAG[-DISTANCE-gHEX][-dirty]. + + Like 'git describe --tags --dirty --always'. + + Exceptions: + 1: no tags. HEX[-dirty] (note: no 'g' prefix) + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"]: + rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) + else: + # exception #1 + rendered = pieces["short"] + if pieces["dirty"]: + rendered += "-dirty" + return rendered + + +def render_git_describe_long(pieces): + """TAG-DISTANCE-gHEX[-dirty]. + + Like 'git describe --tags --dirty --always -long'. + The distance/hash is unconditional. + + Exceptions: + 1: no tags. HEX[-dirty] (note: no 'g' prefix) + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) + else: + # exception #1 + rendered = pieces["short"] + if pieces["dirty"]: + rendered += "-dirty" + return rendered + + +def render(pieces, style): + """Render the given version pieces into the requested style.""" + if pieces["error"]: + return {"version": "unknown", + "full-revisionid": pieces.get("long"), + "dirty": None, + "error": pieces["error"], + "date": None} + + if not style or style == "default": + style = "pep440" # the default + + if style == "pep440": + rendered = render_pep440(pieces) + elif style == "pep440-branch": + rendered = render_pep440_branch(pieces) + elif style == "pep440-pre": + rendered = render_pep440_pre(pieces) + elif style == "pep440-post": + rendered = render_pep440_post(pieces) + elif style == "pep440-post-branch": + rendered = render_pep440_post_branch(pieces) + elif style == "pep440-old": + rendered = render_pep440_old(pieces) + elif style == "git-describe": + rendered = render_git_describe(pieces) + elif style == "git-describe-long": + rendered = render_git_describe_long(pieces) + else: + raise ValueError("unknown style '%s'" % style) + + return {"version": rendered, "full-revisionid": pieces["long"], + "dirty": pieces["dirty"], "error": None, + "date": pieces.get("date")} + + +def get_versions(): + """Get version information or return default if unable to do so.""" + # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have + # __file__, we can work backwards from there to the root. Some + # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which + # case we can only use expanded keywords. + + cfg = get_config() + verbose = cfg.verbose + + try: + return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, + verbose) + except NotThisMethod: + pass + + try: + root = os.path.realpath(__file__) + # versionfile_source is the relative path from the top of the source + # tree (where the .git directory might live) to this file. Invert + # this to find the root from __file__. + for _ in cfg.versionfile_source.split('/'): + root = os.path.dirname(root) + except NameError: + return {"version": "0+unknown", "full-revisionid": None, + "dirty": None, + "error": "unable to find root of source tree", + "date": None} + + try: + pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) + return render(pieces, cfg.style) + except NotThisMethod: + pass + + try: + if cfg.parentdir_prefix: + return versions_from_parentdir(cfg.parentdir_prefix, root, verbose) + except NotThisMethod: + pass + + return {"version": "0+unknown", "full-revisionid": None, + "dirty": None, + "error": "unable to compute version", "date": None} diff --git a/custom-plugins/mkdocs-plugin-tags/tags/plugin.py b/custom-plugins/mkdocs-plugin-tags/tags/plugin.py new file mode 100644 index 0000000..d2897ca --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/tags/plugin.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python +""" +This plugin generates tags file as well as inserts markdown +at the beginning of a file that has tags + +@Adopted from +JL Diaz (c) 2019 +MIT License +""" +from collections import defaultdict +from pathlib import Path +from re import search, DOTALL, MULTILINE +from yaml import load, FullLoader, YAMLError +from jinja2 import Environment, FileSystemLoader +from mkdocs.structure.files import File +from mkdocs.plugins import BasePlugin +from mkdocs.config.config_options import Type +from mkdocs.__main__ import log + +class TagsPlugin(BasePlugin): + """ + Creates "tags.md" file containing a list of the pages grouped by tags + + It uses the info in the YAML metadata of each page, for the pages which + provide a "tags" keyword (whose value is a list of strings) + """ + config_scheme = ( + ('filename', Type(str, default='tags.md')), + ('folder', Type(str, default='aux')), + ('template', Type(str)), + ('css_name', Type(str, default='.button')), + ) + + def __init__(self): + self.metadata = [] + self.tag_dict = None + self.filename = "tags.md" + self.folder = "aux" + self.template = None + self.css_name = ".button" + self.templ = None + + #pylint: disable=unused-argument + def on_page_markdown(self, markdown, page, config, files): + """ + takes markdown, page, config, and files + currently modifies the markdown to add a button to click to get related tag info + tag is customizeable by adding css that keys off the `self.css_name` + """ + if 'tags' in page.meta: + swap_mark = [f"[{x}](/{str(self.filename).strip('.md')}.html#{x}){{{self.css_name}}}" + for x in page.meta['tags']] + swap_mark.append('\n') + return f'{" ".join(swap_mark)}{markdown}' + return markdown + + def on_config(self, config): + """Load config options""" + self.filename = Path(self.config.get("filename") or self.filename) + self.folder = Path(self.config.get("folder") or self.folder) + self.css_name = self.config.get("css_name") + # Make sure that the tags folder is absolute, and exists + if not self.folder.is_absolute(): + self.folder = Path(config["docs_dir"]) / ".." / self.folder + if not self.folder.exists(): + self.folder.mkdir(parents=True) + + if self.config.get("template"): + self.template = Path(self.config.get("template")) + if self.template is None: + self.template = Path(__file__).parent.joinpath( + "templates" + ).joinpath("tags.md.template") + environment = Environment( + loader=FileSystemLoader(searchpath=str(self.template.parent)) + ) + self.templ = environment.get_template(str(self.template.name)) + + def on_files(self, files, config): + """Load files to check for tags""" + self.metadata = [ + get_metadata(x.src_path, config['docs_dir']) + for x in files if x.src_path.endswith(".md") + ] + # Create new file with tags + self.generate_tags_file() + # New file to add to the build + newfile = File( + path=str(self.filename), + src_dir=str(self.folder), + dest_dir=config["site_dir"], + use_directory_urls=False + ) + files.append(newfile) + + def generate_tags_page(self, data): + """Generate the tags to be populated on the + mkdocs tag page""" + return self.templ.render( + tags=sorted(data.items(), key=lambda t: t[0].lower()), + ) + + def generate_tags_file(self): + """Generate a file to be stored on the mkdocs page""" + sorted_meta = sorted(self.metadata, key=lambda e: e.get("year", 5000) if e else 0) + self.tag_dict = defaultdict(list) + for meta in sorted_meta: + if not meta: + continue + if "title" not in meta: + meta["title"] = meta['filename'].split("/")[-1].strip('.md') + tags = meta.get("tags", []) + for tag in tags: + self.tag_dict[tag].append(meta) + + with open(str(self.folder / self.filename), "w", encoding='utf-8') as fname: + fname.write(self.generate_tags_page(self.tag_dict)) + +# Helper functions +def get_metadata(name, path): + """Get the metadata off of a file""" + filename = Path(path) / Path(name) + with filename.open() as fname: + match_string = search(r"\A\s*---\n.*?\n---", fname.read(), flags=DOTALL | MULTILINE) + if match_string: + try: + metadata = match_string.group(0).strip('---') + meta = load(metadata, Loader=FullLoader) + meta.update(filename=name) + return meta + except YAMLError as err: + log.error("Couldn't parse %s yaml due to %s", fname, err) + return None diff --git a/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template b/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template new file mode 100644 index 0000000..af6bb13 --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template @@ -0,0 +1,14 @@ +--- +title: Tags +--- + +# Contents grouped by tag + +{% for tag, pages in tags %} + +## {{tag}} +{% for page in pages %} + * [{{page.title}}]({{page.filename}}) +{% endfor %} + +{% endfor %} \ No newline at end of file diff --git a/custom-plugins/mkdocs-plugin-tags/versioneer.py b/custom-plugins/mkdocs-plugin-tags/versioneer.py new file mode 100644 index 0000000..b4cd1d6 --- /dev/null +++ b/custom-plugins/mkdocs-plugin-tags/versioneer.py @@ -0,0 +1,2109 @@ + +# Version: 0.21 + +"""The Versioneer - like a rocketeer, but for versions. + +The Versioneer +============== + +* like a rocketeer, but for versions! +* https://github.com/python-versioneer/python-versioneer +* Brian Warner +* License: Public Domain +* Compatible with: Python 3.6, 3.7, 3.8, 3.9 and pypy3 +* [![Latest Version][pypi-image]][pypi-url] +* [![Build Status][travis-image]][travis-url] + +This is a tool for managing a recorded version number in distutils-based +python projects. The goal is to remove the tedious and error-prone "update +the embedded version string" step from your release process. Making a new +release should be as easy as recording a new tag in your version-control +system, and maybe making new tarballs. + + +## Quick Install + +* `pip install versioneer` to somewhere in your $PATH +* add a `[versioneer]` section to your setup.cfg (see [Install](INSTALL.md)) +* run `versioneer install` in your source tree, commit the results +* Verify version information with `python setup.py version` + +## Version Identifiers + +Source trees come from a variety of places: + +* a version-control system checkout (mostly used by developers) +* a nightly tarball, produced by build automation +* a snapshot tarball, produced by a web-based VCS browser, like github's + "tarball from tag" feature +* a release tarball, produced by "setup.py sdist", distributed through PyPI + +Within each source tree, the version identifier (either a string or a number, +this tool is format-agnostic) can come from a variety of places: + +* ask the VCS tool itself, e.g. "git describe" (for checkouts), which knows + about recent "tags" and an absolute revision-id +* the name of the directory into which the tarball was unpacked +* an expanded VCS keyword ($Id$, etc) +* a `_version.py` created by some earlier build step + +For released software, the version identifier is closely related to a VCS +tag. Some projects use tag names that include more than just the version +string (e.g. "myproject-1.2" instead of just "1.2"), in which case the tool +needs to strip the tag prefix to extract the version identifier. For +unreleased software (between tags), the version identifier should provide +enough information to help developers recreate the same tree, while also +giving them an idea of roughly how old the tree is (after version 1.2, before +version 1.3). Many VCS systems can report a description that captures this, +for example `git describe --tags --dirty --always` reports things like +"0.7-1-g574ab98-dirty" to indicate that the checkout is one revision past the +0.7 tag, has a unique revision id of "574ab98", and is "dirty" (it has +uncommitted changes). + +The version identifier is used for multiple purposes: + +* to allow the module to self-identify its version: `myproject.__version__` +* to choose a name and prefix for a 'setup.py sdist' tarball + +## Theory of Operation + +Versioneer works by adding a special `_version.py` file into your source +tree, where your `__init__.py` can import it. This `_version.py` knows how to +dynamically ask the VCS tool for version information at import time. + +`_version.py` also contains `$Revision$` markers, and the installation +process marks `_version.py` to have this marker rewritten with a tag name +during the `git archive` command. As a result, generated tarballs will +contain enough information to get the proper version. + +To allow `setup.py` to compute a version too, a `versioneer.py` is added to +the top level of your source tree, next to `setup.py` and the `setup.cfg` +that configures it. This overrides several distutils/setuptools commands to +compute the version when invoked, and changes `setup.py build` and `setup.py +sdist` to replace `_version.py` with a small static file that contains just +the generated version data. + +## Installation + +See [INSTALL.md](./INSTALL.md) for detailed installation instructions. + +## Version-String Flavors + +Code which uses Versioneer can learn about its version string at runtime by +importing `_version` from your main `__init__.py` file and running the +`get_versions()` function. From the "outside" (e.g. in `setup.py`), you can +import the top-level `versioneer.py` and run `get_versions()`. + +Both functions return a dictionary with different flavors of version +information: + +* `['version']`: A condensed version string, rendered using the selected + style. This is the most commonly used value for the project's version + string. The default "pep440" style yields strings like `0.11`, + `0.11+2.g1076c97`, or `0.11+2.g1076c97.dirty`. See the "Styles" section + below for alternative styles. + +* `['full-revisionid']`: detailed revision identifier. For Git, this is the + full SHA1 commit id, e.g. "1076c978a8d3cfc70f408fe5974aa6c092c949ac". + +* `['date']`: Date and time of the latest `HEAD` commit. For Git, it is the + commit date in ISO 8601 format. This will be None if the date is not + available. + +* `['dirty']`: a boolean, True if the tree has uncommitted changes. Note that + this is only accurate if run in a VCS checkout, otherwise it is likely to + be False or None + +* `['error']`: if the version string could not be computed, this will be set + to a string describing the problem, otherwise it will be None. It may be + useful to throw an exception in setup.py if this is set, to avoid e.g. + creating tarballs with a version string of "unknown". + +Some variants are more useful than others. Including `full-revisionid` in a +bug report should allow developers to reconstruct the exact code being tested +(or indicate the presence of local changes that should be shared with the +developers). `version` is suitable for display in an "about" box or a CLI +`--version` output: it can be easily compared against release notes and lists +of bugs fixed in various releases. + +The installer adds the following text to your `__init__.py` to place a basic +version in `YOURPROJECT.__version__`: + + from ._version import get_versions + __version__ = get_versions()['version'] + del get_versions + +## Styles + +The setup.cfg `style=` configuration controls how the VCS information is +rendered into a version string. + +The default style, "pep440", produces a PEP440-compliant string, equal to the +un-prefixed tag name for actual releases, and containing an additional "local +version" section with more detail for in-between builds. For Git, this is +TAG[+DISTANCE.gHEX[.dirty]] , using information from `git describe --tags +--dirty --always`. For example "0.11+2.g1076c97.dirty" indicates that the +tree is like the "1076c97" commit but has uncommitted changes (".dirty"), and +that this commit is two revisions ("+2") beyond the "0.11" tag. For released +software (exactly equal to a known tag), the identifier will only contain the +stripped tag, e.g. "0.11". + +Other styles are available. See [details.md](details.md) in the Versioneer +source tree for descriptions. + +## Debugging + +Versioneer tries to avoid fatal errors: if something goes wrong, it will tend +to return a version of "0+unknown". To investigate the problem, run `setup.py +version`, which will run the version-lookup code in a verbose mode, and will +display the full contents of `get_versions()` (including the `error` string, +which may help identify what went wrong). + +## Known Limitations + +Some situations are known to cause problems for Versioneer. This details the +most significant ones. More can be found on Github +[issues page](https://github.com/python-versioneer/python-versioneer/issues). + +### Subprojects + +Versioneer has limited support for source trees in which `setup.py` is not in +the root directory (e.g. `setup.py` and `.git/` are *not* siblings). The are +two common reasons why `setup.py` might not be in the root: + +* Source trees which contain multiple subprojects, such as + [Buildbot](https://github.com/buildbot/buildbot), which contains both + "master" and "slave" subprojects, each with their own `setup.py`, + `setup.cfg`, and `tox.ini`. Projects like these produce multiple PyPI + distributions (and upload multiple independently-installable tarballs). +* Source trees whose main purpose is to contain a C library, but which also + provide bindings to Python (and perhaps other languages) in subdirectories. + +Versioneer will look for `.git` in parent directories, and most operations +should get the right version string. However `pip` and `setuptools` have bugs +and implementation details which frequently cause `pip install .` from a +subproject directory to fail to find a correct version string (so it usually +defaults to `0+unknown`). + +`pip install --editable .` should work correctly. `setup.py install` might +work too. + +Pip-8.1.1 is known to have this problem, but hopefully it will get fixed in +some later version. + +[Bug #38](https://github.com/python-versioneer/python-versioneer/issues/38) is tracking +this issue. The discussion in +[PR #61](https://github.com/python-versioneer/python-versioneer/pull/61) describes the +issue from the Versioneer side in more detail. +[pip PR#3176](https://github.com/pypa/pip/pull/3176) and +[pip PR#3615](https://github.com/pypa/pip/pull/3615) contain work to improve +pip to let Versioneer work correctly. + +Versioneer-0.16 and earlier only looked for a `.git` directory next to the +`setup.cfg`, so subprojects were completely unsupported with those releases. + +### Editable installs with setuptools <= 18.5 + +`setup.py develop` and `pip install --editable .` allow you to install a +project into a virtualenv once, then continue editing the source code (and +test) without re-installing after every change. + +"Entry-point scripts" (`setup(entry_points={"console_scripts": ..})`) are a +convenient way to specify executable scripts that should be installed along +with the python package. + +These both work as expected when using modern setuptools. When using +setuptools-18.5 or earlier, however, certain operations will cause +`pkg_resources.DistributionNotFound` errors when running the entrypoint +script, which must be resolved by re-installing the package. This happens +when the install happens with one version, then the egg_info data is +regenerated while a different version is checked out. Many setup.py commands +cause egg_info to be rebuilt (including `sdist`, `wheel`, and installing into +a different virtualenv), so this can be surprising. + +[Bug #83](https://github.com/python-versioneer/python-versioneer/issues/83) describes +this one, but upgrading to a newer version of setuptools should probably +resolve it. + + +## Updating Versioneer + +To upgrade your project to a new release of Versioneer, do the following: + +* install the new Versioneer (`pip install -U versioneer` or equivalent) +* edit `setup.cfg`, if necessary, to include any new configuration settings + indicated by the release notes. See [UPGRADING](./UPGRADING.md) for details. +* re-run `versioneer install` in your source tree, to replace + `SRC/_version.py` +* commit any changed files + +## Future Directions + +This tool is designed to make it easily extended to other version-control +systems: all VCS-specific components are in separate directories like +src/git/ . The top-level `versioneer.py` script is assembled from these +components by running make-versioneer.py . In the future, make-versioneer.py +will take a VCS name as an argument, and will construct a version of +`versioneer.py` that is specific to the given VCS. It might also take the +configuration arguments that are currently provided manually during +installation by editing setup.py . Alternatively, it might go the other +direction and include code from all supported VCS systems, reducing the +number of intermediate scripts. + +## Similar projects + +* [setuptools_scm](https://github.com/pypa/setuptools_scm/) - a non-vendored build-time + dependency +* [minver](https://github.com/jbweston/miniver) - a lightweight reimplementation of + versioneer +* [versioningit](https://github.com/jwodder/versioningit) - a PEP 518-based setuptools + plugin + +## License + +To make Versioneer easier to embed, all its code is dedicated to the public +domain. The `_version.py` that it creates is also in the public domain. +Specifically, both are released under the Creative Commons "Public Domain +Dedication" license (CC0-1.0), as described in +https://creativecommons.org/publicdomain/zero/1.0/ . + +[pypi-image]: https://img.shields.io/pypi/v/versioneer.svg +[pypi-url]: https://pypi.python.org/pypi/versioneer/ +[travis-image]: +https://img.shields.io/travis/com/python-versioneer/python-versioneer.svg +[travis-url]: https://travis-ci.com/github/python-versioneer/python-versioneer + +""" +# pylint:disable=invalid-name,import-outside-toplevel,missing-function-docstring +# pylint:disable=missing-class-docstring,too-many-branches,too-many-statements +# pylint:disable=raise-missing-from,too-many-lines,too-many-locals,import-error +# pylint:disable=too-few-public-methods,redefined-outer-name,consider-using-with +# pylint:disable=attribute-defined-outside-init,too-many-arguments + +import configparser +import errno +import json +import os +import re +import subprocess +import sys +from typing import Callable, Dict + + +class VersioneerConfig: + """Container for Versioneer configuration parameters.""" + + +def get_root(): + """Get the project root directory. + + We require that all commands are run from the project root, i.e. the + directory that contains setup.py, setup.cfg, and versioneer.py . + """ + root = os.path.realpath(os.path.abspath(os.getcwd())) + setup_py = os.path.join(root, "setup.py") + versioneer_py = os.path.join(root, "versioneer.py") + if not (os.path.exists(setup_py) or os.path.exists(versioneer_py)): + # allow 'python path/to/setup.py COMMAND' + root = os.path.dirname(os.path.realpath(os.path.abspath(sys.argv[0]))) + setup_py = os.path.join(root, "setup.py") + versioneer_py = os.path.join(root, "versioneer.py") + if not (os.path.exists(setup_py) or os.path.exists(versioneer_py)): + err = ("Versioneer was unable to run the project root directory. " + "Versioneer requires setup.py to be executed from " + "its immediate directory (like 'python setup.py COMMAND'), " + "or in a way that lets it use sys.argv[0] to find the root " + "(like 'python path/to/setup.py COMMAND').") + raise VersioneerBadRootError(err) + try: + # Certain runtime workflows (setup.py install/develop in a setuptools + # tree) execute all dependencies in a single python process, so + # "versioneer" may be imported multiple times, and python's shared + # module-import table will cache the first one. So we can't use + # os.path.dirname(__file__), as that will find whichever + # versioneer.py was first imported, even in later projects. + my_path = os.path.realpath(os.path.abspath(__file__)) + me_dir = os.path.normcase(os.path.splitext(my_path)[0]) + vsr_dir = os.path.normcase(os.path.splitext(versioneer_py)[0]) + if me_dir != vsr_dir: + print("Warning: build in %s is using versioneer.py from %s" + % (os.path.dirname(my_path), versioneer_py)) + except NameError: + pass + return root + + +def get_config_from_root(root): + """Read the project setup.cfg file to determine Versioneer config.""" + # This might raise OSError (if setup.cfg is missing), or + # configparser.NoSectionError (if it lacks a [versioneer] section), or + # configparser.NoOptionError (if it lacks "VCS="). See the docstring at + # the top of versioneer.py for instructions on writing your setup.cfg . + setup_cfg = os.path.join(root, "setup.cfg") + parser = configparser.ConfigParser() + with open(setup_cfg, "r") as cfg_file: + parser.read_file(cfg_file) + VCS = parser.get("versioneer", "VCS") # mandatory + + # Dict-like interface for non-mandatory entries + section = parser["versioneer"] + + cfg = VersioneerConfig() + cfg.VCS = VCS + cfg.style = section.get("style", "") + cfg.versionfile_source = section.get("versionfile_source") + cfg.versionfile_build = section.get("versionfile_build") + cfg.tag_prefix = section.get("tag_prefix") + if cfg.tag_prefix in ("''", '""'): + cfg.tag_prefix = "" + cfg.parentdir_prefix = section.get("parentdir_prefix") + cfg.verbose = section.get("verbose") + return cfg + + +class NotThisMethod(Exception): + """Exception raised if a method is not valid for the current scenario.""" + + +# these dictionaries contain VCS-specific tools +LONG_VERSION_PY: Dict[str, str] = {} +HANDLERS: Dict[str, Dict[str, Callable]] = {} + + +def register_vcs_handler(vcs, method): # decorator + """Create decorator to mark a method as the handler of a VCS.""" + def decorate(f): + """Store f in HANDLERS[vcs][method].""" + HANDLERS.setdefault(vcs, {})[method] = f + return f + return decorate + + +def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, + env=None): + """Call the given command(s).""" + assert isinstance(commands, list) + process = None + for command in commands: + try: + dispcmd = str([command] + args) + # remember shell=False, so use git.cmd on windows, not just git + process = subprocess.Popen([command] + args, cwd=cwd, env=env, + stdout=subprocess.PIPE, + stderr=(subprocess.PIPE if hide_stderr + else None)) + break + except OSError: + e = sys.exc_info()[1] + if e.errno == errno.ENOENT: + continue + if verbose: + print("unable to run %s" % dispcmd) + print(e) + return None, None + else: + if verbose: + print("unable to find command, tried %s" % (commands,)) + return None, None + stdout = process.communicate()[0].strip().decode() + if process.returncode != 0: + if verbose: + print("unable to run %s (error)" % dispcmd) + print("stdout was %s" % stdout) + return None, process.returncode + return stdout, process.returncode + + +LONG_VERSION_PY['git'] = r''' +# This file helps to compute a version number in source trees obtained from +# git-archive tarball (such as those provided by githubs download-from-tag +# feature). Distribution tarballs (built by setup.py sdist) and build +# directories (produced by setup.py build) will contain a much shorter file +# that just contains the computed version number. + +# This file is released into the public domain. Generated by +# versioneer-0.21 (https://github.com/python-versioneer/python-versioneer) + +"""Git implementation of _version.py.""" + +import errno +import os +import re +import subprocess +import sys +from typing import Callable, Dict + + +def get_keywords(): + """Get the keywords needed to look up the version information.""" + # these strings will be replaced by git during git-archive. + # setup.py/versioneer.py will grep for the variable names, so they must + # each be defined on a line of their own. _version.py will just call + # get_keywords(). + git_refnames = "%(DOLLAR)sFormat:%%d%(DOLLAR)s" + git_full = "%(DOLLAR)sFormat:%%H%(DOLLAR)s" + git_date = "%(DOLLAR)sFormat:%%ci%(DOLLAR)s" + keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} + return keywords + + +class VersioneerConfig: + """Container for Versioneer configuration parameters.""" + + +def get_config(): + """Create, populate and return the VersioneerConfig() object.""" + # these strings are filled in when 'setup.py versioneer' creates + # _version.py + cfg = VersioneerConfig() + cfg.VCS = "git" + cfg.style = "%(STYLE)s" + cfg.tag_prefix = "%(TAG_PREFIX)s" + cfg.parentdir_prefix = "%(PARENTDIR_PREFIX)s" + cfg.versionfile_source = "%(VERSIONFILE_SOURCE)s" + cfg.verbose = False + return cfg + + +class NotThisMethod(Exception): + """Exception raised if a method is not valid for the current scenario.""" + + +LONG_VERSION_PY: Dict[str, str] = {} +HANDLERS: Dict[str, Dict[str, Callable]] = {} + + +def register_vcs_handler(vcs, method): # decorator + """Create decorator to mark a method as the handler of a VCS.""" + def decorate(f): + """Store f in HANDLERS[vcs][method].""" + if vcs not in HANDLERS: + HANDLERS[vcs] = {} + HANDLERS[vcs][method] = f + return f + return decorate + + +def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, + env=None): + """Call the given command(s).""" + assert isinstance(commands, list) + process = None + for command in commands: + try: + dispcmd = str([command] + args) + # remember shell=False, so use git.cmd on windows, not just git + process = subprocess.Popen([command] + args, cwd=cwd, env=env, + stdout=subprocess.PIPE, + stderr=(subprocess.PIPE if hide_stderr + else None)) + break + except OSError: + e = sys.exc_info()[1] + if e.errno == errno.ENOENT: + continue + if verbose: + print("unable to run %%s" %% dispcmd) + print(e) + return None, None + else: + if verbose: + print("unable to find command, tried %%s" %% (commands,)) + return None, None + stdout = process.communicate()[0].strip().decode() + if process.returncode != 0: + if verbose: + print("unable to run %%s (error)" %% dispcmd) + print("stdout was %%s" %% stdout) + return None, process.returncode + return stdout, process.returncode + + +def versions_from_parentdir(parentdir_prefix, root, verbose): + """Try to determine the version from the parent directory name. + + Source tarballs conventionally unpack into a directory that includes both + the project name and a version string. We will also support searching up + two directory levels for an appropriately named parent directory + """ + rootdirs = [] + + for _ in range(3): + dirname = os.path.basename(root) + if dirname.startswith(parentdir_prefix): + return {"version": dirname[len(parentdir_prefix):], + "full-revisionid": None, + "dirty": False, "error": None, "date": None} + rootdirs.append(root) + root = os.path.dirname(root) # up a level + + if verbose: + print("Tried directories %%s but none started with prefix %%s" %% + (str(rootdirs), parentdir_prefix)) + raise NotThisMethod("rootdir doesn't start with parentdir_prefix") + + +@register_vcs_handler("git", "get_keywords") +def git_get_keywords(versionfile_abs): + """Extract version information from the given file.""" + # the code embedded in _version.py can just fetch the value of these + # keywords. When used from setup.py, we don't want to import _version.py, + # so we do it with a regexp instead. This function is not used from + # _version.py. + keywords = {} + try: + with open(versionfile_abs, "r") as fobj: + for line in fobj: + if line.strip().startswith("git_refnames ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["refnames"] = mo.group(1) + if line.strip().startswith("git_full ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["full"] = mo.group(1) + if line.strip().startswith("git_date ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["date"] = mo.group(1) + except OSError: + pass + return keywords + + +@register_vcs_handler("git", "keywords") +def git_versions_from_keywords(keywords, tag_prefix, verbose): + """Get version information from git keywords.""" + if "refnames" not in keywords: + raise NotThisMethod("Short version file found") + date = keywords.get("date") + if date is not None: + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + + # git-2.2.0 added "%%cI", which expands to an ISO-8601 -compliant + # datestamp. However we prefer "%%ci" (which expands to an "ISO-8601 + # -like" string, which we must then edit to make compliant), because + # it's been around since git-1.5.3, and it's too difficult to + # discover which version we're using, or to work around using an + # older one. + date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) + refnames = keywords["refnames"].strip() + if refnames.startswith("$Format"): + if verbose: + print("keywords are unexpanded, not using") + raise NotThisMethod("unexpanded keywords, not a git-archive tarball") + refs = {r.strip() for r in refnames.strip("()").split(",")} + # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of + # just "foo-1.0". If we see a "tag: " prefix, prefer those. + TAG = "tag: " + tags = {r[len(TAG):] for r in refs if r.startswith(TAG)} + if not tags: + # Either we're using git < 1.8.3, or there really are no tags. We use + # a heuristic: assume all version tags have a digit. The old git %%d + # expansion behaves like git log --decorate=short and strips out the + # refs/heads/ and refs/tags/ prefixes that would let us distinguish + # between branches and tags. By ignoring refnames without digits, we + # filter out many common branch names like "release" and + # "stabilization", as well as "HEAD" and "master". + tags = {r for r in refs if re.search(r'\d', r)} + if verbose: + print("discarding '%%s', no digits" %% ",".join(refs - tags)) + if verbose: + print("likely tags: %%s" %% ",".join(sorted(tags))) + for ref in sorted(tags): + # sorting will prefer e.g. "2.0" over "2.0rc1" + if ref.startswith(tag_prefix): + r = ref[len(tag_prefix):] + # Filter out refs that exactly match prefix or that don't start + # with a number once the prefix is stripped (mostly a concern + # when prefix is '') + if not re.match(r'\d', r): + continue + if verbose: + print("picking %%s" %% r) + return {"version": r, + "full-revisionid": keywords["full"].strip(), + "dirty": False, "error": None, + "date": date} + # no suitable tags, so version is "0+unknown", but full hex is still there + if verbose: + print("no suitable tags, using unknown + full revision id") + return {"version": "0+unknown", + "full-revisionid": keywords["full"].strip(), + "dirty": False, "error": "no suitable tags", "date": None} + + +@register_vcs_handler("git", "pieces_from_vcs") +def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): + """Get version from 'git describe' in the root of the source tree. + + This only gets called if the git-archive 'subst' keywords were *not* + expanded, and _version.py hasn't already been rewritten with a short + version string, meaning we're inside a checked out source tree. + """ + GITS = ["git"] + TAG_PREFIX_REGEX = "*" + if sys.platform == "win32": + GITS = ["git.cmd", "git.exe"] + TAG_PREFIX_REGEX = r"\*" + + _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, + hide_stderr=True) + if rc != 0: + if verbose: + print("Directory %%s not under git control" %% root) + raise NotThisMethod("'git rev-parse --git-dir' returned error") + + # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] + # if there isn't one, this yields HEX[-dirty] (no NUM) + describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty", + "--always", "--long", + "--match", + "%%s%%s" %% (tag_prefix, TAG_PREFIX_REGEX)], + cwd=root) + # --long was added in git-1.5.5 + if describe_out is None: + raise NotThisMethod("'git describe' failed") + describe_out = describe_out.strip() + full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) + if full_out is None: + raise NotThisMethod("'git rev-parse' failed") + full_out = full_out.strip() + + pieces = {} + pieces["long"] = full_out + pieces["short"] = full_out[:7] # maybe improved later + pieces["error"] = None + + branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], + cwd=root) + # --abbrev-ref was added in git-1.6.3 + if rc != 0 or branch_name is None: + raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") + branch_name = branch_name.strip() + + if branch_name == "HEAD": + # If we aren't exactly on a branch, pick a branch which represents + # the current commit. If all else fails, we are on a branchless + # commit. + branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) + # --contains was added in git-1.5.4 + if rc != 0 or branches is None: + raise NotThisMethod("'git branch --contains' returned error") + branches = branches.split("\n") + + # Remove the first line if we're running detached + if "(" in branches[0]: + branches.pop(0) + + # Strip off the leading "* " from the list of branches. + branches = [branch[2:] for branch in branches] + if "master" in branches: + branch_name = "master" + elif not branches: + branch_name = None + else: + # Pick the first branch that is returned. Good or bad. + branch_name = branches[0] + + pieces["branch"] = branch_name + + # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] + # TAG might have hyphens. + git_describe = describe_out + + # look for -dirty suffix + dirty = git_describe.endswith("-dirty") + pieces["dirty"] = dirty + if dirty: + git_describe = git_describe[:git_describe.rindex("-dirty")] + + # now we have TAG-NUM-gHEX or HEX + + if "-" in git_describe: + # TAG-NUM-gHEX + mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) + if not mo: + # unparsable. Maybe git-describe is misbehaving? + pieces["error"] = ("unable to parse git-describe output: '%%s'" + %% describe_out) + return pieces + + # tag + full_tag = mo.group(1) + if not full_tag.startswith(tag_prefix): + if verbose: + fmt = "tag '%%s' doesn't start with prefix '%%s'" + print(fmt %% (full_tag, tag_prefix)) + pieces["error"] = ("tag '%%s' doesn't start with prefix '%%s'" + %% (full_tag, tag_prefix)) + return pieces + pieces["closest-tag"] = full_tag[len(tag_prefix):] + + # distance: number of commits since tag + pieces["distance"] = int(mo.group(2)) + + # commit: short hex revision ID + pieces["short"] = mo.group(3) + + else: + # HEX: no tags + pieces["closest-tag"] = None + count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root) + pieces["distance"] = int(count_out) # total number of commits + + # commit date: see ISO-8601 comment in git_versions_from_keywords() + date = runner(GITS, ["show", "-s", "--format=%%ci", "HEAD"], cwd=root)[0].strip() + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) + + return pieces + + +def plus_or_dot(pieces): + """Return a + if we don't already have one, else return a .""" + if "+" in pieces.get("closest-tag", ""): + return "." + return "+" + + +def render_pep440(pieces): + """Build up version string, with post-release "local version identifier". + + Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you + get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty + + Exceptions: + 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += plus_or_dot(pieces) + rendered += "%%d.g%%s" %% (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0+untagged.%%d.g%%s" %% (pieces["distance"], + pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def render_pep440_branch(pieces): + """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . + + The ".dev0" means not master branch. Note that .dev0 sorts backwards + (a feature branch will appear "older" than the master branch). + + Exceptions: + 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "%%d.g%%s" %% (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0" + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+untagged.%%d.g%%s" %% (pieces["distance"], + pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def pep440_split_post(ver): + """Split pep440 version string at the post-release segment. + + Returns the release segments before the post-release and the + post-release version number (or -1 if no post-release segment is present). + """ + vc = str.split(ver, ".post") + return vc[0], int(vc[1] or 0) if len(vc) == 2 else None + + +def render_pep440_pre(pieces): + """TAG[.postN.devDISTANCE] -- No -dirty. + + Exceptions: + 1: no tags. 0.post0.devDISTANCE + """ + if pieces["closest-tag"]: + if pieces["distance"]: + # update the post release segment + tag_version, post_version = pep440_split_post(pieces["closest-tag"]) + rendered = tag_version + if post_version is not None: + rendered += ".post%%d.dev%%d" %% (post_version+1, pieces["distance"]) + else: + rendered += ".post0.dev%%d" %% (pieces["distance"]) + else: + # no commits, use the tag as the version + rendered = pieces["closest-tag"] + else: + # exception #1 + rendered = "0.post0.dev%%d" %% pieces["distance"] + return rendered + + +def render_pep440_post(pieces): + """TAG[.postDISTANCE[.dev0]+gHEX] . + + The ".dev0" means dirty. Note that .dev0 sorts backwards + (a dirty tree will appear "older" than the corresponding clean one), + but you shouldn't be releasing software with -dirty anyways. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%%d" %% pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "g%%s" %% pieces["short"] + else: + # exception #1 + rendered = "0.post%%d" %% pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + rendered += "+g%%s" %% pieces["short"] + return rendered + + +def render_pep440_post_branch(pieces): + """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . + + The ".dev0" means not master branch. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%%d" %% pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "g%%s" %% pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0.post%%d" %% pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+g%%s" %% pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def render_pep440_old(pieces): + """TAG[.postDISTANCE[.dev0]] . + + The ".dev0" means dirty. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%%d" %% pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + else: + # exception #1 + rendered = "0.post%%d" %% pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + return rendered + + +def render_git_describe(pieces): + """TAG[-DISTANCE-gHEX][-dirty]. + + Like 'git describe --tags --dirty --always'. + + Exceptions: + 1: no tags. HEX[-dirty] (note: no 'g' prefix) + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"]: + rendered += "-%%d-g%%s" %% (pieces["distance"], pieces["short"]) + else: + # exception #1 + rendered = pieces["short"] + if pieces["dirty"]: + rendered += "-dirty" + return rendered + + +def render_git_describe_long(pieces): + """TAG-DISTANCE-gHEX[-dirty]. + + Like 'git describe --tags --dirty --always -long'. + The distance/hash is unconditional. + + Exceptions: + 1: no tags. HEX[-dirty] (note: no 'g' prefix) + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + rendered += "-%%d-g%%s" %% (pieces["distance"], pieces["short"]) + else: + # exception #1 + rendered = pieces["short"] + if pieces["dirty"]: + rendered += "-dirty" + return rendered + + +def render(pieces, style): + """Render the given version pieces into the requested style.""" + if pieces["error"]: + return {"version": "unknown", + "full-revisionid": pieces.get("long"), + "dirty": None, + "error": pieces["error"], + "date": None} + + if not style or style == "default": + style = "pep440" # the default + + if style == "pep440": + rendered = render_pep440(pieces) + elif style == "pep440-branch": + rendered = render_pep440_branch(pieces) + elif style == "pep440-pre": + rendered = render_pep440_pre(pieces) + elif style == "pep440-post": + rendered = render_pep440_post(pieces) + elif style == "pep440-post-branch": + rendered = render_pep440_post_branch(pieces) + elif style == "pep440-old": + rendered = render_pep440_old(pieces) + elif style == "git-describe": + rendered = render_git_describe(pieces) + elif style == "git-describe-long": + rendered = render_git_describe_long(pieces) + else: + raise ValueError("unknown style '%%s'" %% style) + + return {"version": rendered, "full-revisionid": pieces["long"], + "dirty": pieces["dirty"], "error": None, + "date": pieces.get("date")} + + +def get_versions(): + """Get version information or return default if unable to do so.""" + # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have + # __file__, we can work backwards from there to the root. Some + # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which + # case we can only use expanded keywords. + + cfg = get_config() + verbose = cfg.verbose + + try: + return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, + verbose) + except NotThisMethod: + pass + + try: + root = os.path.realpath(__file__) + # versionfile_source is the relative path from the top of the source + # tree (where the .git directory might live) to this file. Invert + # this to find the root from __file__. + for _ in cfg.versionfile_source.split('/'): + root = os.path.dirname(root) + except NameError: + return {"version": "0+unknown", "full-revisionid": None, + "dirty": None, + "error": "unable to find root of source tree", + "date": None} + + try: + pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) + return render(pieces, cfg.style) + except NotThisMethod: + pass + + try: + if cfg.parentdir_prefix: + return versions_from_parentdir(cfg.parentdir_prefix, root, verbose) + except NotThisMethod: + pass + + return {"version": "0+unknown", "full-revisionid": None, + "dirty": None, + "error": "unable to compute version", "date": None} +''' + + +@register_vcs_handler("git", "get_keywords") +def git_get_keywords(versionfile_abs): + """Extract version information from the given file.""" + # the code embedded in _version.py can just fetch the value of these + # keywords. When used from setup.py, we don't want to import _version.py, + # so we do it with a regexp instead. This function is not used from + # _version.py. + keywords = {} + try: + with open(versionfile_abs, "r") as fobj: + for line in fobj: + if line.strip().startswith("git_refnames ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["refnames"] = mo.group(1) + if line.strip().startswith("git_full ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["full"] = mo.group(1) + if line.strip().startswith("git_date ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["date"] = mo.group(1) + except OSError: + pass + return keywords + + +@register_vcs_handler("git", "keywords") +def git_versions_from_keywords(keywords, tag_prefix, verbose): + """Get version information from git keywords.""" + if "refnames" not in keywords: + raise NotThisMethod("Short version file found") + date = keywords.get("date") + if date is not None: + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + + # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant + # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 + # -like" string, which we must then edit to make compliant), because + # it's been around since git-1.5.3, and it's too difficult to + # discover which version we're using, or to work around using an + # older one. + date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) + refnames = keywords["refnames"].strip() + if refnames.startswith("$Format"): + if verbose: + print("keywords are unexpanded, not using") + raise NotThisMethod("unexpanded keywords, not a git-archive tarball") + refs = {r.strip() for r in refnames.strip("()").split(",")} + # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of + # just "foo-1.0". If we see a "tag: " prefix, prefer those. + TAG = "tag: " + tags = {r[len(TAG):] for r in refs if r.startswith(TAG)} + if not tags: + # Either we're using git < 1.8.3, or there really are no tags. We use + # a heuristic: assume all version tags have a digit. The old git %d + # expansion behaves like git log --decorate=short and strips out the + # refs/heads/ and refs/tags/ prefixes that would let us distinguish + # between branches and tags. By ignoring refnames without digits, we + # filter out many common branch names like "release" and + # "stabilization", as well as "HEAD" and "master". + tags = {r for r in refs if re.search(r'\d', r)} + if verbose: + print("discarding '%s', no digits" % ",".join(refs - tags)) + if verbose: + print("likely tags: %s" % ",".join(sorted(tags))) + for ref in sorted(tags): + # sorting will prefer e.g. "2.0" over "2.0rc1" + if ref.startswith(tag_prefix): + r = ref[len(tag_prefix):] + # Filter out refs that exactly match prefix or that don't start + # with a number once the prefix is stripped (mostly a concern + # when prefix is '') + if not re.match(r'\d', r): + continue + if verbose: + print("picking %s" % r) + return {"version": r, + "full-revisionid": keywords["full"].strip(), + "dirty": False, "error": None, + "date": date} + # no suitable tags, so version is "0+unknown", but full hex is still there + if verbose: + print("no suitable tags, using unknown + full revision id") + return {"version": "0+unknown", + "full-revisionid": keywords["full"].strip(), + "dirty": False, "error": "no suitable tags", "date": None} + + +@register_vcs_handler("git", "pieces_from_vcs") +def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): + """Get version from 'git describe' in the root of the source tree. + + This only gets called if the git-archive 'subst' keywords were *not* + expanded, and _version.py hasn't already been rewritten with a short + version string, meaning we're inside a checked out source tree. + """ + GITS = ["git"] + TAG_PREFIX_REGEX = "*" + if sys.platform == "win32": + GITS = ["git.cmd", "git.exe"] + TAG_PREFIX_REGEX = r"\*" + + _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, + hide_stderr=True) + if rc != 0: + if verbose: + print("Directory %s not under git control" % root) + raise NotThisMethod("'git rev-parse --git-dir' returned error") + + # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] + # if there isn't one, this yields HEX[-dirty] (no NUM) + describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty", + "--always", "--long", + "--match", + "%s%s" % (tag_prefix, TAG_PREFIX_REGEX)], + cwd=root) + # --long was added in git-1.5.5 + if describe_out is None: + raise NotThisMethod("'git describe' failed") + describe_out = describe_out.strip() + full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) + if full_out is None: + raise NotThisMethod("'git rev-parse' failed") + full_out = full_out.strip() + + pieces = {} + pieces["long"] = full_out + pieces["short"] = full_out[:7] # maybe improved later + pieces["error"] = None + + branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], + cwd=root) + # --abbrev-ref was added in git-1.6.3 + if rc != 0 or branch_name is None: + raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") + branch_name = branch_name.strip() + + if branch_name == "HEAD": + # If we aren't exactly on a branch, pick a branch which represents + # the current commit. If all else fails, we are on a branchless + # commit. + branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) + # --contains was added in git-1.5.4 + if rc != 0 or branches is None: + raise NotThisMethod("'git branch --contains' returned error") + branches = branches.split("\n") + + # Remove the first line if we're running detached + if "(" in branches[0]: + branches.pop(0) + + # Strip off the leading "* " from the list of branches. + branches = [branch[2:] for branch in branches] + if "master" in branches: + branch_name = "master" + elif not branches: + branch_name = None + else: + # Pick the first branch that is returned. Good or bad. + branch_name = branches[0] + + pieces["branch"] = branch_name + + # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] + # TAG might have hyphens. + git_describe = describe_out + + # look for -dirty suffix + dirty = git_describe.endswith("-dirty") + pieces["dirty"] = dirty + if dirty: + git_describe = git_describe[:git_describe.rindex("-dirty")] + + # now we have TAG-NUM-gHEX or HEX + + if "-" in git_describe: + # TAG-NUM-gHEX + mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) + if not mo: + # unparsable. Maybe git-describe is misbehaving? + pieces["error"] = ("unable to parse git-describe output: '%s'" + % describe_out) + return pieces + + # tag + full_tag = mo.group(1) + if not full_tag.startswith(tag_prefix): + if verbose: + fmt = "tag '%s' doesn't start with prefix '%s'" + print(fmt % (full_tag, tag_prefix)) + pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" + % (full_tag, tag_prefix)) + return pieces + pieces["closest-tag"] = full_tag[len(tag_prefix):] + + # distance: number of commits since tag + pieces["distance"] = int(mo.group(2)) + + # commit: short hex revision ID + pieces["short"] = mo.group(3) + + else: + # HEX: no tags + pieces["closest-tag"] = None + count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root) + pieces["distance"] = int(count_out) # total number of commits + + # commit date: see ISO-8601 comment in git_versions_from_keywords() + date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) + + return pieces + + +def do_vcs_install(manifest_in, versionfile_source, ipy): + """Git-specific installation logic for Versioneer. + + For Git, this means creating/changing .gitattributes to mark _version.py + for export-subst keyword substitution. + """ + GITS = ["git"] + if sys.platform == "win32": + GITS = ["git.cmd", "git.exe"] + files = [manifest_in, versionfile_source] + if ipy: + files.append(ipy) + try: + my_path = __file__ + if my_path.endswith(".pyc") or my_path.endswith(".pyo"): + my_path = os.path.splitext(my_path)[0] + ".py" + versioneer_file = os.path.relpath(my_path) + except NameError: + versioneer_file = "versioneer.py" + files.append(versioneer_file) + present = False + try: + with open(".gitattributes", "r") as fobj: + for line in fobj: + if line.strip().startswith(versionfile_source): + if "export-subst" in line.strip().split()[1:]: + present = True + break + except OSError: + pass + if not present: + with open(".gitattributes", "a+") as fobj: + fobj.write(f"{versionfile_source} export-subst\n") + files.append(".gitattributes") + run_command(GITS, ["add", "--"] + files) + + +def versions_from_parentdir(parentdir_prefix, root, verbose): + """Try to determine the version from the parent directory name. + + Source tarballs conventionally unpack into a directory that includes both + the project name and a version string. We will also support searching up + two directory levels for an appropriately named parent directory + """ + rootdirs = [] + + for _ in range(3): + dirname = os.path.basename(root) + if dirname.startswith(parentdir_prefix): + return {"version": dirname[len(parentdir_prefix):], + "full-revisionid": None, + "dirty": False, "error": None, "date": None} + rootdirs.append(root) + root = os.path.dirname(root) # up a level + + if verbose: + print("Tried directories %s but none started with prefix %s" % + (str(rootdirs), parentdir_prefix)) + raise NotThisMethod("rootdir doesn't start with parentdir_prefix") + + +SHORT_VERSION_PY = """ +# This file was generated by 'versioneer.py' (0.21) from +# revision-control system data, or from the parent directory name of an +# unpacked source archive. Distribution tarballs contain a pre-generated copy +# of this file. + +import json + +version_json = ''' +%s +''' # END VERSION_JSON + + +def get_versions(): + return json.loads(version_json) +""" + + +def versions_from_file(filename): + """Try to determine the version from _version.py if present.""" + try: + with open(filename) as f: + contents = f.read() + except OSError: + raise NotThisMethod("unable to read _version.py") + mo = re.search(r"version_json = '''\n(.*)''' # END VERSION_JSON", + contents, re.M | re.S) + if not mo: + mo = re.search(r"version_json = '''\r\n(.*)''' # END VERSION_JSON", + contents, re.M | re.S) + if not mo: + raise NotThisMethod("no version_json in _version.py") + return json.loads(mo.group(1)) + + +def write_to_version_file(filename, versions): + """Write the given version number to the given _version.py file.""" + os.unlink(filename) + contents = json.dumps(versions, sort_keys=True, + indent=1, separators=(",", ": ")) + with open(filename, "w") as f: + f.write(SHORT_VERSION_PY % contents) + + print("set %s to '%s'" % (filename, versions["version"])) + + +def plus_or_dot(pieces): + """Return a + if we don't already have one, else return a .""" + if "+" in pieces.get("closest-tag", ""): + return "." + return "+" + + +def render_pep440(pieces): + """Build up version string, with post-release "local version identifier". + + Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you + get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty + + Exceptions: + 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += plus_or_dot(pieces) + rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0+untagged.%d.g%s" % (pieces["distance"], + pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def render_pep440_branch(pieces): + """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . + + The ".dev0" means not master branch. Note that .dev0 sorts backwards + (a feature branch will appear "older" than the master branch). + + Exceptions: + 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0" + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+untagged.%d.g%s" % (pieces["distance"], + pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def pep440_split_post(ver): + """Split pep440 version string at the post-release segment. + + Returns the release segments before the post-release and the + post-release version number (or -1 if no post-release segment is present). + """ + vc = str.split(ver, ".post") + return vc[0], int(vc[1] or 0) if len(vc) == 2 else None + + +def render_pep440_pre(pieces): + """TAG[.postN.devDISTANCE] -- No -dirty. + + Exceptions: + 1: no tags. 0.post0.devDISTANCE + """ + if pieces["closest-tag"]: + if pieces["distance"]: + # update the post release segment + tag_version, post_version = pep440_split_post(pieces["closest-tag"]) + rendered = tag_version + if post_version is not None: + rendered += ".post%d.dev%d" % (post_version+1, pieces["distance"]) + else: + rendered += ".post0.dev%d" % (pieces["distance"]) + else: + # no commits, use the tag as the version + rendered = pieces["closest-tag"] + else: + # exception #1 + rendered = "0.post0.dev%d" % pieces["distance"] + return rendered + + +def render_pep440_post(pieces): + """TAG[.postDISTANCE[.dev0]+gHEX] . + + The ".dev0" means dirty. Note that .dev0 sorts backwards + (a dirty tree will appear "older" than the corresponding clean one), + but you shouldn't be releasing software with -dirty anyways. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%d" % pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "g%s" % pieces["short"] + else: + # exception #1 + rendered = "0.post%d" % pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + rendered += "+g%s" % pieces["short"] + return rendered + + +def render_pep440_post_branch(pieces): + """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . + + The ".dev0" means not master branch. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%d" % pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "g%s" % pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0.post%d" % pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+g%s" % pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def render_pep440_old(pieces): + """TAG[.postDISTANCE[.dev0]] . + + The ".dev0" means dirty. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%d" % pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + else: + # exception #1 + rendered = "0.post%d" % pieces["distance"] + if pieces["dirty"]: + rendered += ".dev0" + return rendered + + +def render_git_describe(pieces): + """TAG[-DISTANCE-gHEX][-dirty]. + + Like 'git describe --tags --dirty --always'. + + Exceptions: + 1: no tags. HEX[-dirty] (note: no 'g' prefix) + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"]: + rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) + else: + # exception #1 + rendered = pieces["short"] + if pieces["dirty"]: + rendered += "-dirty" + return rendered + + +def render_git_describe_long(pieces): + """TAG-DISTANCE-gHEX[-dirty]. + + Like 'git describe --tags --dirty --always -long'. + The distance/hash is unconditional. + + Exceptions: + 1: no tags. HEX[-dirty] (note: no 'g' prefix) + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) + else: + # exception #1 + rendered = pieces["short"] + if pieces["dirty"]: + rendered += "-dirty" + return rendered + + +def render(pieces, style): + """Render the given version pieces into the requested style.""" + if pieces["error"]: + return {"version": "unknown", + "full-revisionid": pieces.get("long"), + "dirty": None, + "error": pieces["error"], + "date": None} + + if not style or style == "default": + style = "pep440" # the default + + if style == "pep440": + rendered = render_pep440(pieces) + elif style == "pep440-branch": + rendered = render_pep440_branch(pieces) + elif style == "pep440-pre": + rendered = render_pep440_pre(pieces) + elif style == "pep440-post": + rendered = render_pep440_post(pieces) + elif style == "pep440-post-branch": + rendered = render_pep440_post_branch(pieces) + elif style == "pep440-old": + rendered = render_pep440_old(pieces) + elif style == "git-describe": + rendered = render_git_describe(pieces) + elif style == "git-describe-long": + rendered = render_git_describe_long(pieces) + else: + raise ValueError("unknown style '%s'" % style) + + return {"version": rendered, "full-revisionid": pieces["long"], + "dirty": pieces["dirty"], "error": None, + "date": pieces.get("date")} + + +class VersioneerBadRootError(Exception): + """The project root directory is unknown or missing key files.""" + + +def get_versions(verbose=False): + """Get the project version from whatever source is available. + + Returns dict with two keys: 'version' and 'full'. + """ + if "versioneer" in sys.modules: + # see the discussion in cmdclass.py:get_cmdclass() + del sys.modules["versioneer"] + + root = get_root() + cfg = get_config_from_root(root) + + assert cfg.VCS is not None, "please set [versioneer]VCS= in setup.cfg" + handlers = HANDLERS.get(cfg.VCS) + assert handlers, "unrecognized VCS '%s'" % cfg.VCS + verbose = verbose or cfg.verbose + assert cfg.versionfile_source is not None, \ + "please set versioneer.versionfile_source" + assert cfg.tag_prefix is not None, "please set versioneer.tag_prefix" + + versionfile_abs = os.path.join(root, cfg.versionfile_source) + + # extract version from first of: _version.py, VCS command (e.g. 'git + # describe'), parentdir. This is meant to work for developers using a + # source checkout, for users of a tarball created by 'setup.py sdist', + # and for users of a tarball/zipball created by 'git archive' or github's + # download-from-tag feature or the equivalent in other VCSes. + + get_keywords_f = handlers.get("get_keywords") + from_keywords_f = handlers.get("keywords") + if get_keywords_f and from_keywords_f: + try: + keywords = get_keywords_f(versionfile_abs) + ver = from_keywords_f(keywords, cfg.tag_prefix, verbose) + if verbose: + print("got version from expanded keyword %s" % ver) + return ver + except NotThisMethod: + pass + + try: + ver = versions_from_file(versionfile_abs) + if verbose: + print("got version from file %s %s" % (versionfile_abs, ver)) + return ver + except NotThisMethod: + pass + + from_vcs_f = handlers.get("pieces_from_vcs") + if from_vcs_f: + try: + pieces = from_vcs_f(cfg.tag_prefix, root, verbose) + ver = render(pieces, cfg.style) + if verbose: + print("got version from VCS %s" % ver) + return ver + except NotThisMethod: + pass + + try: + if cfg.parentdir_prefix: + ver = versions_from_parentdir(cfg.parentdir_prefix, root, verbose) + if verbose: + print("got version from parentdir %s" % ver) + return ver + except NotThisMethod: + pass + + if verbose: + print("unable to compute version") + + return {"version": "0+unknown", "full-revisionid": None, + "dirty": None, "error": "unable to compute version", + "date": None} + + +def get_version(): + """Get the short version string for this project.""" + return get_versions()["version"] + + +def get_cmdclass(cmdclass=None): + """Get the custom setuptools/distutils subclasses used by Versioneer. + + If the package uses a different cmdclass (e.g. one from numpy), it + should be provide as an argument. + """ + if "versioneer" in sys.modules: + del sys.modules["versioneer"] + # this fixes the "python setup.py develop" case (also 'install' and + # 'easy_install .'), in which subdependencies of the main project are + # built (using setup.py bdist_egg) in the same python process. Assume + # a main project A and a dependency B, which use different versions + # of Versioneer. A's setup.py imports A's Versioneer, leaving it in + # sys.modules by the time B's setup.py is executed, causing B to run + # with the wrong versioneer. Setuptools wraps the sub-dep builds in a + # sandbox that restores sys.modules to it's pre-build state, so the + # parent is protected against the child's "import versioneer". By + # removing ourselves from sys.modules here, before the child build + # happens, we protect the child from the parent's versioneer too. + # Also see https://github.com/python-versioneer/python-versioneer/issues/52 + + cmds = {} if cmdclass is None else cmdclass.copy() + + # we add "version" to both distutils and setuptools + from distutils.core import Command + + class cmd_version(Command): + description = "report generated version string" + user_options = [] + boolean_options = [] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + vers = get_versions(verbose=True) + print("Version: %s" % vers["version"]) + print(" full-revisionid: %s" % vers.get("full-revisionid")) + print(" dirty: %s" % vers.get("dirty")) + print(" date: %s" % vers.get("date")) + if vers["error"]: + print(" error: %s" % vers["error"]) + cmds["version"] = cmd_version + + # we override "build_py" in both distutils and setuptools + # + # most invocation pathways end up running build_py: + # distutils/build -> build_py + # distutils/install -> distutils/build ->.. + # setuptools/bdist_wheel -> distutils/install ->.. + # setuptools/bdist_egg -> distutils/install_lib -> build_py + # setuptools/install -> bdist_egg ->.. + # setuptools/develop -> ? + # pip install: + # copies source tree to a tempdir before running egg_info/etc + # if .git isn't copied too, 'git describe' will fail + # then does setup.py bdist_wheel, or sometimes setup.py install + # setup.py egg_info -> ? + + # we override different "build_py" commands for both environments + if 'build_py' in cmds: + _build_py = cmds['build_py'] + elif "setuptools" in sys.modules: + from setuptools.command.build_py import build_py as _build_py + else: + from distutils.command.build_py import build_py as _build_py + + class cmd_build_py(_build_py): + def run(self): + root = get_root() + cfg = get_config_from_root(root) + versions = get_versions() + _build_py.run(self) + # now locate _version.py in the new build/ directory and replace + # it with an updated value + if cfg.versionfile_build: + target_versionfile = os.path.join(self.build_lib, + cfg.versionfile_build) + print("UPDATING %s" % target_versionfile) + write_to_version_file(target_versionfile, versions) + cmds["build_py"] = cmd_build_py + + if 'build_ext' in cmds: + _build_ext = cmds['build_ext'] + elif "setuptools" in sys.modules: + from setuptools.command.build_ext import build_ext as _build_ext + else: + from distutils.command.build_ext import build_ext as _build_ext + + class cmd_build_ext(_build_ext): + def run(self): + root = get_root() + cfg = get_config_from_root(root) + versions = get_versions() + _build_ext.run(self) + if self.inplace: + # build_ext --inplace will only build extensions in + # build/lib<..> dir with no _version.py to write to. + # As in place builds will already have a _version.py + # in the module dir, we do not need to write one. + return + # now locate _version.py in the new build/ directory and replace + # it with an updated value + target_versionfile = os.path.join(self.build_lib, + cfg.versionfile_build) + print("UPDATING %s" % target_versionfile) + write_to_version_file(target_versionfile, versions) + cmds["build_ext"] = cmd_build_ext + + if "cx_Freeze" in sys.modules: # cx_freeze enabled? + from cx_Freeze.dist import build_exe as _build_exe + # nczeczulin reports that py2exe won't like the pep440-style string + # as FILEVERSION, but it can be used for PRODUCTVERSION, e.g. + # setup(console=[{ + # "version": versioneer.get_version().split("+", 1)[0], # FILEVERSION + # "product_version": versioneer.get_version(), + # ... + + class cmd_build_exe(_build_exe): + def run(self): + root = get_root() + cfg = get_config_from_root(root) + versions = get_versions() + target_versionfile = cfg.versionfile_source + print("UPDATING %s" % target_versionfile) + write_to_version_file(target_versionfile, versions) + + _build_exe.run(self) + os.unlink(target_versionfile) + with open(cfg.versionfile_source, "w") as f: + LONG = LONG_VERSION_PY[cfg.VCS] + f.write(LONG % + {"DOLLAR": "$", + "STYLE": cfg.style, + "TAG_PREFIX": cfg.tag_prefix, + "PARENTDIR_PREFIX": cfg.parentdir_prefix, + "VERSIONFILE_SOURCE": cfg.versionfile_source, + }) + cmds["build_exe"] = cmd_build_exe + del cmds["build_py"] + + if 'py2exe' in sys.modules: # py2exe enabled? + from py2exe.distutils_buildexe import py2exe as _py2exe + + class cmd_py2exe(_py2exe): + def run(self): + root = get_root() + cfg = get_config_from_root(root) + versions = get_versions() + target_versionfile = cfg.versionfile_source + print("UPDATING %s" % target_versionfile) + write_to_version_file(target_versionfile, versions) + + _py2exe.run(self) + os.unlink(target_versionfile) + with open(cfg.versionfile_source, "w") as f: + LONG = LONG_VERSION_PY[cfg.VCS] + f.write(LONG % + {"DOLLAR": "$", + "STYLE": cfg.style, + "TAG_PREFIX": cfg.tag_prefix, + "PARENTDIR_PREFIX": cfg.parentdir_prefix, + "VERSIONFILE_SOURCE": cfg.versionfile_source, + }) + cmds["py2exe"] = cmd_py2exe + + # we override different "sdist" commands for both environments + if 'sdist' in cmds: + _sdist = cmds['sdist'] + elif "setuptools" in sys.modules: + from setuptools.command.sdist import sdist as _sdist + else: + from distutils.command.sdist import sdist as _sdist + + class cmd_sdist(_sdist): + def run(self): + versions = get_versions() + self._versioneer_generated_versions = versions + # unless we update this, the command will keep using the old + # version + self.distribution.metadata.version = versions["version"] + return _sdist.run(self) + + def make_release_tree(self, base_dir, files): + root = get_root() + cfg = get_config_from_root(root) + _sdist.make_release_tree(self, base_dir, files) + # now locate _version.py in the new base_dir directory + # (remembering that it may be a hardlink) and replace it with an + # updated value + target_versionfile = os.path.join(base_dir, cfg.versionfile_source) + print("UPDATING %s" % target_versionfile) + write_to_version_file(target_versionfile, + self._versioneer_generated_versions) + cmds["sdist"] = cmd_sdist + + return cmds + + +CONFIG_ERROR = """ +setup.cfg is missing the necessary Versioneer configuration. You need +a section like: + + [versioneer] + VCS = git + style = pep440 + versionfile_source = src/myproject/_version.py + versionfile_build = myproject/_version.py + tag_prefix = + parentdir_prefix = myproject- + +You will also need to edit your setup.py to use the results: + + import versioneer + setup(version=versioneer.get_version(), + cmdclass=versioneer.get_cmdclass(), ...) + +Please read the docstring in ./versioneer.py for configuration instructions, +edit setup.cfg, and re-run the installer or 'python versioneer.py setup'. +""" + +SAMPLE_CONFIG = """ +# See the docstring in versioneer.py for instructions. Note that you must +# re-run 'versioneer.py setup' after changing this section, and commit the +# resulting files. + +[versioneer] +#VCS = git +#style = pep440 +#versionfile_source = +#versionfile_build = +#tag_prefix = +#parentdir_prefix = + +""" + +OLD_SNIPPET = """ +from ._version import get_versions +__version__ = get_versions()['version'] +del get_versions +""" + +INIT_PY_SNIPPET = """ +from . import {0} +__version__ = {0}.get_versions()['version'] +""" + + +def do_setup(): + """Do main VCS-independent setup function for installing Versioneer.""" + root = get_root() + try: + cfg = get_config_from_root(root) + except (OSError, configparser.NoSectionError, + configparser.NoOptionError) as e: + if isinstance(e, (OSError, configparser.NoSectionError)): + print("Adding sample versioneer config to setup.cfg", + file=sys.stderr) + with open(os.path.join(root, "setup.cfg"), "a") as f: + f.write(SAMPLE_CONFIG) + print(CONFIG_ERROR, file=sys.stderr) + return 1 + + print(" creating %s" % cfg.versionfile_source) + with open(cfg.versionfile_source, "w") as f: + LONG = LONG_VERSION_PY[cfg.VCS] + f.write(LONG % {"DOLLAR": "$", + "STYLE": cfg.style, + "TAG_PREFIX": cfg.tag_prefix, + "PARENTDIR_PREFIX": cfg.parentdir_prefix, + "VERSIONFILE_SOURCE": cfg.versionfile_source, + }) + + ipy = os.path.join(os.path.dirname(cfg.versionfile_source), + "__init__.py") + if os.path.exists(ipy): + try: + with open(ipy, "r") as f: + old = f.read() + except OSError: + old = "" + module = os.path.splitext(os.path.basename(cfg.versionfile_source))[0] + snippet = INIT_PY_SNIPPET.format(module) + if OLD_SNIPPET in old: + print(" replacing boilerplate in %s" % ipy) + with open(ipy, "w") as f: + f.write(old.replace(OLD_SNIPPET, snippet)) + elif snippet not in old: + print(" appending to %s" % ipy) + with open(ipy, "a") as f: + f.write(snippet) + else: + print(" %s unmodified" % ipy) + else: + print(" %s doesn't exist, ok" % ipy) + ipy = None + + # Make sure both the top-level "versioneer.py" and versionfile_source + # (PKG/_version.py, used by runtime code) are in MANIFEST.in, so + # they'll be copied into source distributions. Pip won't be able to + # install the package without this. + manifest_in = os.path.join(root, "MANIFEST.in") + simple_includes = set() + try: + with open(manifest_in, "r") as f: + for line in f: + if line.startswith("include "): + for include in line.split()[1:]: + simple_includes.add(include) + except OSError: + pass + # That doesn't cover everything MANIFEST.in can do + # (http://docs.python.org/2/distutils/sourcedist.html#commands), so + # it might give some false negatives. Appending redundant 'include' + # lines is safe, though. + if "versioneer.py" not in simple_includes: + print(" appending 'versioneer.py' to MANIFEST.in") + with open(manifest_in, "a") as f: + f.write("include versioneer.py\n") + else: + print(" 'versioneer.py' already in MANIFEST.in") + if cfg.versionfile_source not in simple_includes: + print(" appending versionfile_source ('%s') to MANIFEST.in" % + cfg.versionfile_source) + with open(manifest_in, "a") as f: + f.write("include %s\n" % cfg.versionfile_source) + else: + print(" versionfile_source already in MANIFEST.in") + + # Make VCS-specific changes. For git, this means creating/changing + # .gitattributes to mark _version.py for export-subst keyword + # substitution. + do_vcs_install(manifest_in, cfg.versionfile_source, ipy) + return 0 + + +def scan_setup_py(): + """Validate the contents of setup.py against Versioneer's expectations.""" + found = set() + setters = False + errors = 0 + with open("setup.py", "r") as f: + for line in f.readlines(): + if "import versioneer" in line: + found.add("import") + if "versioneer.get_cmdclass()" in line: + found.add("cmdclass") + if "versioneer.get_version()" in line: + found.add("get_version") + if "versioneer.VCS" in line: + setters = True + if "versioneer.versionfile_source" in line: + setters = True + if len(found) != 3: + print("") + print("Your setup.py appears to be missing some important items") + print("(but I might be wrong). Please make sure it has something") + print("roughly like the following:") + print("") + print(" import versioneer") + print(" setup( version=versioneer.get_version(),") + print(" cmdclass=versioneer.get_cmdclass(), ...)") + print("") + errors += 1 + if setters: + print("You should remove lines like 'versioneer.VCS = ' and") + print("'versioneer.versionfile_source = ' . This configuration") + print("now lives in setup.cfg, and should be removed from setup.py") + print("") + errors += 1 + return errors + + +if __name__ == "__main__": + cmd = sys.argv[1] + if cmd == "setup": + errors = do_setup() + errors += scan_setup_py() + if errors: + sys.exit(1) From 7267f8f2ad287fafcbae0fc88f3ceb7dadd19035 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 11:45:45 +0930 Subject: [PATCH 022/222] fix(mkdocs-plugin-tags): Build a relative link for the url to the tag page The url was hardcoded to the root dir which prevented docs ran in a sub-folder from having a tags.html url that was correct. Changes to be committed: modified: custom-plugins/mkdocs-plugin-tags/tags/plugin.py issue #3 MR ! --- custom-plugins/mkdocs-plugin-tags/tags/plugin.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/custom-plugins/mkdocs-plugin-tags/tags/plugin.py b/custom-plugins/mkdocs-plugin-tags/tags/plugin.py index d2897ca..b072720 100644 --- a/custom-plugins/mkdocs-plugin-tags/tags/plugin.py +++ b/custom-plugins/mkdocs-plugin-tags/tags/plugin.py @@ -47,8 +47,15 @@ class TagsPlugin(BasePlugin): currently modifies the markdown to add a button to click to get related tag info tag is customizeable by adding css that keys off the `self.css_name` """ + + page_url = page.url.split("/") + tags_link = '' + + for i in range(len(page_url) - 1): + tags_link = tags_link + '../' + if 'tags' in page.meta: - swap_mark = [f"[{x}](/{str(self.filename).strip('.md')}.html#{x}){{{self.css_name}}}" + swap_mark = [f"[{x}]({tags_link}{str(self.filename).strip('.md')}#{x}){{{self.css_name}}}" for x in page.meta['tags']] swap_mark.append('\n') return f'{" ".join(swap_mark)}{markdown}' From 653c535b2cfae1a54e45f27fd5c23950ddbe64ed Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 11:48:07 +0930 Subject: [PATCH 023/222] fix(mkdocs-plugin-tags): the template not using the specified css class for the tag the template was hardcoded to the tag class. this prevented the end user from specifying the css_name in mkdcos.yml Changes to be committed: modified: custom-plugins/mkdocs-plugin-tags/tags/plugin.py modified: custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template issue #3 MR !1 --- custom-plugins/mkdocs-plugin-tags/tags/plugin.py | 6 ++++++ .../mkdocs-plugin-tags/tags/templates/tags.md.template | 6 ++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/custom-plugins/mkdocs-plugin-tags/tags/plugin.py b/custom-plugins/mkdocs-plugin-tags/tags/plugin.py index b072720..2584488 100644 --- a/custom-plugins/mkdocs-plugin-tags/tags/plugin.py +++ b/custom-plugins/mkdocs-plugin-tags/tags/plugin.py @@ -103,8 +103,14 @@ class TagsPlugin(BasePlugin): def generate_tags_page(self, data): """Generate the tags to be populated on the mkdocs tag page""" + + css_name = self.css_name + + if css_name[0:1] == '.': + css_name = css_name[1:len(css_name)] return self.templ.render( tags=sorted(data.items(), key=lambda t: t[0].lower()), + css_name = css_name, ) def generate_tags_file(self): diff --git a/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template b/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template index af6bb13..17b91e6 100644 --- a/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template +++ b/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template @@ -5,10 +5,8 @@ title: Tags # Contents grouped by tag {% for tag, pages in tags %} - -## {{tag}} +## {{tag}} {% for page in pages %} * [{{page.title}}]({{page.filename}}) {% endfor %} - -{% endfor %} \ No newline at end of file +{% endfor %} From 5dfeeb81b10a7e86c30b90dc360a06c3ad429adf Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 12:00:08 +0930 Subject: [PATCH 024/222] refactor(mkdocs-plugin-tags): rebranded plugin to be from nfc changed so that it could be deliniated as custom MR !1 #3 --- .../mkdocs-plugin-tags/.gitattributes | 1 - custom-plugins/mkdocs-plugin-tags/LICENSE.md | 10 +- custom-plugins/mkdocs-plugin-tags/README.md | 5 +- custom-plugins/mkdocs-plugin-tags/setup.cfg | 6 +- custom-plugins/mkdocs-plugin-tags/setup.py | 3 +- .../mkdocs-plugin-tags/versioneer.py | 2109 ----------------- 6 files changed, 12 insertions(+), 2122 deletions(-) delete mode 100644 custom-plugins/mkdocs-plugin-tags/.gitattributes delete mode 100644 custom-plugins/mkdocs-plugin-tags/versioneer.py diff --git a/custom-plugins/mkdocs-plugin-tags/.gitattributes b/custom-plugins/mkdocs-plugin-tags/.gitattributes deleted file mode 100644 index 5d0a907..0000000 --- a/custom-plugins/mkdocs-plugin-tags/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -tags/_version.py export-subst diff --git a/custom-plugins/mkdocs-plugin-tags/LICENSE.md b/custom-plugins/mkdocs-plugin-tags/LICENSE.md index 9ac887d..ff9ec97 100644 --- a/custom-plugins/mkdocs-plugin-tags/LICENSE.md +++ b/custom-plugins/mkdocs-plugin-tags/LICENSE.md @@ -1,8 +1,6 @@ -# MIT License -Copyright (C) 2018 Laurent Franceschetti +# License +Copyright (C) 2021 No Fuss Computing -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +All Rights Reserved. -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Not yet suitable for public release. diff --git a/custom-plugins/mkdocs-plugin-tags/README.md b/custom-plugins/mkdocs-plugin-tags/README.md index f1054de..9c6b4d8 100644 --- a/custom-plugins/mkdocs-plugin-tags/README.md +++ b/custom-plugins/mkdocs-plugin-tags/README.md @@ -1,5 +1,8 @@ -# Tags +# No Fuss Computing's Tags Plugin for MKDocs +Modified version from: https://github.com/ginsburgnm/mkdocs-plugin-tags.git + +# Previous Readme below - tags Support for tags in the yaml-metadata in the header of markdown files. Extracts this metadata and creates a "Tags" page which lists all tags diff --git a/custom-plugins/mkdocs-plugin-tags/setup.cfg b/custom-plugins/mkdocs-plugin-tags/setup.cfg index 93c5585..7a66196 100644 --- a/custom-plugins/mkdocs-plugin-tags/setup.cfg +++ b/custom-plugins/mkdocs-plugin-tags/setup.cfg @@ -1,8 +1,8 @@ [metadata] name = mkdocs-plugin-tags -author = nginsburg -author_email = ginsburgnm@gmail.com -url = https://github.com/ginsburgnm/mkdocs-plugin-tags +author = No Fuss Computing +author_email = helpdesk@nofusscomputing.com +url = https://gitlab.com/nofusscomputing/infrastructure/website description = "Create tags in mkdocs" long_description_content_type = text/markdown long_description = file: README.md diff --git a/custom-plugins/mkdocs-plugin-tags/setup.py b/custom-plugins/mkdocs-plugin-tags/setup.py index 7a330b5..68d5092 100644 --- a/custom-plugins/mkdocs-plugin-tags/setup.py +++ b/custom-plugins/mkdocs-plugin-tags/setup.py @@ -2,10 +2,9 @@ Setup the plugin """ from setuptools import setup, find_packages -import versioneer setup( - version=versioneer.get_version(), + version='0.0.1', python_requires='>=3.6', install_requires=[ 'mkdocs==1.2.3', diff --git a/custom-plugins/mkdocs-plugin-tags/versioneer.py b/custom-plugins/mkdocs-plugin-tags/versioneer.py deleted file mode 100644 index b4cd1d6..0000000 --- a/custom-plugins/mkdocs-plugin-tags/versioneer.py +++ /dev/null @@ -1,2109 +0,0 @@ - -# Version: 0.21 - -"""The Versioneer - like a rocketeer, but for versions. - -The Versioneer -============== - -* like a rocketeer, but for versions! -* https://github.com/python-versioneer/python-versioneer -* Brian Warner -* License: Public Domain -* Compatible with: Python 3.6, 3.7, 3.8, 3.9 and pypy3 -* [![Latest Version][pypi-image]][pypi-url] -* [![Build Status][travis-image]][travis-url] - -This is a tool for managing a recorded version number in distutils-based -python projects. The goal is to remove the tedious and error-prone "update -the embedded version string" step from your release process. Making a new -release should be as easy as recording a new tag in your version-control -system, and maybe making new tarballs. - - -## Quick Install - -* `pip install versioneer` to somewhere in your $PATH -* add a `[versioneer]` section to your setup.cfg (see [Install](INSTALL.md)) -* run `versioneer install` in your source tree, commit the results -* Verify version information with `python setup.py version` - -## Version Identifiers - -Source trees come from a variety of places: - -* a version-control system checkout (mostly used by developers) -* a nightly tarball, produced by build automation -* a snapshot tarball, produced by a web-based VCS browser, like github's - "tarball from tag" feature -* a release tarball, produced by "setup.py sdist", distributed through PyPI - -Within each source tree, the version identifier (either a string or a number, -this tool is format-agnostic) can come from a variety of places: - -* ask the VCS tool itself, e.g. "git describe" (for checkouts), which knows - about recent "tags" and an absolute revision-id -* the name of the directory into which the tarball was unpacked -* an expanded VCS keyword ($Id$, etc) -* a `_version.py` created by some earlier build step - -For released software, the version identifier is closely related to a VCS -tag. Some projects use tag names that include more than just the version -string (e.g. "myproject-1.2" instead of just "1.2"), in which case the tool -needs to strip the tag prefix to extract the version identifier. For -unreleased software (between tags), the version identifier should provide -enough information to help developers recreate the same tree, while also -giving them an idea of roughly how old the tree is (after version 1.2, before -version 1.3). Many VCS systems can report a description that captures this, -for example `git describe --tags --dirty --always` reports things like -"0.7-1-g574ab98-dirty" to indicate that the checkout is one revision past the -0.7 tag, has a unique revision id of "574ab98", and is "dirty" (it has -uncommitted changes). - -The version identifier is used for multiple purposes: - -* to allow the module to self-identify its version: `myproject.__version__` -* to choose a name and prefix for a 'setup.py sdist' tarball - -## Theory of Operation - -Versioneer works by adding a special `_version.py` file into your source -tree, where your `__init__.py` can import it. This `_version.py` knows how to -dynamically ask the VCS tool for version information at import time. - -`_version.py` also contains `$Revision$` markers, and the installation -process marks `_version.py` to have this marker rewritten with a tag name -during the `git archive` command. As a result, generated tarballs will -contain enough information to get the proper version. - -To allow `setup.py` to compute a version too, a `versioneer.py` is added to -the top level of your source tree, next to `setup.py` and the `setup.cfg` -that configures it. This overrides several distutils/setuptools commands to -compute the version when invoked, and changes `setup.py build` and `setup.py -sdist` to replace `_version.py` with a small static file that contains just -the generated version data. - -## Installation - -See [INSTALL.md](./INSTALL.md) for detailed installation instructions. - -## Version-String Flavors - -Code which uses Versioneer can learn about its version string at runtime by -importing `_version` from your main `__init__.py` file and running the -`get_versions()` function. From the "outside" (e.g. in `setup.py`), you can -import the top-level `versioneer.py` and run `get_versions()`. - -Both functions return a dictionary with different flavors of version -information: - -* `['version']`: A condensed version string, rendered using the selected - style. This is the most commonly used value for the project's version - string. The default "pep440" style yields strings like `0.11`, - `0.11+2.g1076c97`, or `0.11+2.g1076c97.dirty`. See the "Styles" section - below for alternative styles. - -* `['full-revisionid']`: detailed revision identifier. For Git, this is the - full SHA1 commit id, e.g. "1076c978a8d3cfc70f408fe5974aa6c092c949ac". - -* `['date']`: Date and time of the latest `HEAD` commit. For Git, it is the - commit date in ISO 8601 format. This will be None if the date is not - available. - -* `['dirty']`: a boolean, True if the tree has uncommitted changes. Note that - this is only accurate if run in a VCS checkout, otherwise it is likely to - be False or None - -* `['error']`: if the version string could not be computed, this will be set - to a string describing the problem, otherwise it will be None. It may be - useful to throw an exception in setup.py if this is set, to avoid e.g. - creating tarballs with a version string of "unknown". - -Some variants are more useful than others. Including `full-revisionid` in a -bug report should allow developers to reconstruct the exact code being tested -(or indicate the presence of local changes that should be shared with the -developers). `version` is suitable for display in an "about" box or a CLI -`--version` output: it can be easily compared against release notes and lists -of bugs fixed in various releases. - -The installer adds the following text to your `__init__.py` to place a basic -version in `YOURPROJECT.__version__`: - - from ._version import get_versions - __version__ = get_versions()['version'] - del get_versions - -## Styles - -The setup.cfg `style=` configuration controls how the VCS information is -rendered into a version string. - -The default style, "pep440", produces a PEP440-compliant string, equal to the -un-prefixed tag name for actual releases, and containing an additional "local -version" section with more detail for in-between builds. For Git, this is -TAG[+DISTANCE.gHEX[.dirty]] , using information from `git describe --tags ---dirty --always`. For example "0.11+2.g1076c97.dirty" indicates that the -tree is like the "1076c97" commit but has uncommitted changes (".dirty"), and -that this commit is two revisions ("+2") beyond the "0.11" tag. For released -software (exactly equal to a known tag), the identifier will only contain the -stripped tag, e.g. "0.11". - -Other styles are available. See [details.md](details.md) in the Versioneer -source tree for descriptions. - -## Debugging - -Versioneer tries to avoid fatal errors: if something goes wrong, it will tend -to return a version of "0+unknown". To investigate the problem, run `setup.py -version`, which will run the version-lookup code in a verbose mode, and will -display the full contents of `get_versions()` (including the `error` string, -which may help identify what went wrong). - -## Known Limitations - -Some situations are known to cause problems for Versioneer. This details the -most significant ones. More can be found on Github -[issues page](https://github.com/python-versioneer/python-versioneer/issues). - -### Subprojects - -Versioneer has limited support for source trees in which `setup.py` is not in -the root directory (e.g. `setup.py` and `.git/` are *not* siblings). The are -two common reasons why `setup.py` might not be in the root: - -* Source trees which contain multiple subprojects, such as - [Buildbot](https://github.com/buildbot/buildbot), which contains both - "master" and "slave" subprojects, each with their own `setup.py`, - `setup.cfg`, and `tox.ini`. Projects like these produce multiple PyPI - distributions (and upload multiple independently-installable tarballs). -* Source trees whose main purpose is to contain a C library, but which also - provide bindings to Python (and perhaps other languages) in subdirectories. - -Versioneer will look for `.git` in parent directories, and most operations -should get the right version string. However `pip` and `setuptools` have bugs -and implementation details which frequently cause `pip install .` from a -subproject directory to fail to find a correct version string (so it usually -defaults to `0+unknown`). - -`pip install --editable .` should work correctly. `setup.py install` might -work too. - -Pip-8.1.1 is known to have this problem, but hopefully it will get fixed in -some later version. - -[Bug #38](https://github.com/python-versioneer/python-versioneer/issues/38) is tracking -this issue. The discussion in -[PR #61](https://github.com/python-versioneer/python-versioneer/pull/61) describes the -issue from the Versioneer side in more detail. -[pip PR#3176](https://github.com/pypa/pip/pull/3176) and -[pip PR#3615](https://github.com/pypa/pip/pull/3615) contain work to improve -pip to let Versioneer work correctly. - -Versioneer-0.16 and earlier only looked for a `.git` directory next to the -`setup.cfg`, so subprojects were completely unsupported with those releases. - -### Editable installs with setuptools <= 18.5 - -`setup.py develop` and `pip install --editable .` allow you to install a -project into a virtualenv once, then continue editing the source code (and -test) without re-installing after every change. - -"Entry-point scripts" (`setup(entry_points={"console_scripts": ..})`) are a -convenient way to specify executable scripts that should be installed along -with the python package. - -These both work as expected when using modern setuptools. When using -setuptools-18.5 or earlier, however, certain operations will cause -`pkg_resources.DistributionNotFound` errors when running the entrypoint -script, which must be resolved by re-installing the package. This happens -when the install happens with one version, then the egg_info data is -regenerated while a different version is checked out. Many setup.py commands -cause egg_info to be rebuilt (including `sdist`, `wheel`, and installing into -a different virtualenv), so this can be surprising. - -[Bug #83](https://github.com/python-versioneer/python-versioneer/issues/83) describes -this one, but upgrading to a newer version of setuptools should probably -resolve it. - - -## Updating Versioneer - -To upgrade your project to a new release of Versioneer, do the following: - -* install the new Versioneer (`pip install -U versioneer` or equivalent) -* edit `setup.cfg`, if necessary, to include any new configuration settings - indicated by the release notes. See [UPGRADING](./UPGRADING.md) for details. -* re-run `versioneer install` in your source tree, to replace - `SRC/_version.py` -* commit any changed files - -## Future Directions - -This tool is designed to make it easily extended to other version-control -systems: all VCS-specific components are in separate directories like -src/git/ . The top-level `versioneer.py` script is assembled from these -components by running make-versioneer.py . In the future, make-versioneer.py -will take a VCS name as an argument, and will construct a version of -`versioneer.py` that is specific to the given VCS. It might also take the -configuration arguments that are currently provided manually during -installation by editing setup.py . Alternatively, it might go the other -direction and include code from all supported VCS systems, reducing the -number of intermediate scripts. - -## Similar projects - -* [setuptools_scm](https://github.com/pypa/setuptools_scm/) - a non-vendored build-time - dependency -* [minver](https://github.com/jbweston/miniver) - a lightweight reimplementation of - versioneer -* [versioningit](https://github.com/jwodder/versioningit) - a PEP 518-based setuptools - plugin - -## License - -To make Versioneer easier to embed, all its code is dedicated to the public -domain. The `_version.py` that it creates is also in the public domain. -Specifically, both are released under the Creative Commons "Public Domain -Dedication" license (CC0-1.0), as described in -https://creativecommons.org/publicdomain/zero/1.0/ . - -[pypi-image]: https://img.shields.io/pypi/v/versioneer.svg -[pypi-url]: https://pypi.python.org/pypi/versioneer/ -[travis-image]: -https://img.shields.io/travis/com/python-versioneer/python-versioneer.svg -[travis-url]: https://travis-ci.com/github/python-versioneer/python-versioneer - -""" -# pylint:disable=invalid-name,import-outside-toplevel,missing-function-docstring -# pylint:disable=missing-class-docstring,too-many-branches,too-many-statements -# pylint:disable=raise-missing-from,too-many-lines,too-many-locals,import-error -# pylint:disable=too-few-public-methods,redefined-outer-name,consider-using-with -# pylint:disable=attribute-defined-outside-init,too-many-arguments - -import configparser -import errno -import json -import os -import re -import subprocess -import sys -from typing import Callable, Dict - - -class VersioneerConfig: - """Container for Versioneer configuration parameters.""" - - -def get_root(): - """Get the project root directory. - - We require that all commands are run from the project root, i.e. the - directory that contains setup.py, setup.cfg, and versioneer.py . - """ - root = os.path.realpath(os.path.abspath(os.getcwd())) - setup_py = os.path.join(root, "setup.py") - versioneer_py = os.path.join(root, "versioneer.py") - if not (os.path.exists(setup_py) or os.path.exists(versioneer_py)): - # allow 'python path/to/setup.py COMMAND' - root = os.path.dirname(os.path.realpath(os.path.abspath(sys.argv[0]))) - setup_py = os.path.join(root, "setup.py") - versioneer_py = os.path.join(root, "versioneer.py") - if not (os.path.exists(setup_py) or os.path.exists(versioneer_py)): - err = ("Versioneer was unable to run the project root directory. " - "Versioneer requires setup.py to be executed from " - "its immediate directory (like 'python setup.py COMMAND'), " - "or in a way that lets it use sys.argv[0] to find the root " - "(like 'python path/to/setup.py COMMAND').") - raise VersioneerBadRootError(err) - try: - # Certain runtime workflows (setup.py install/develop in a setuptools - # tree) execute all dependencies in a single python process, so - # "versioneer" may be imported multiple times, and python's shared - # module-import table will cache the first one. So we can't use - # os.path.dirname(__file__), as that will find whichever - # versioneer.py was first imported, even in later projects. - my_path = os.path.realpath(os.path.abspath(__file__)) - me_dir = os.path.normcase(os.path.splitext(my_path)[0]) - vsr_dir = os.path.normcase(os.path.splitext(versioneer_py)[0]) - if me_dir != vsr_dir: - print("Warning: build in %s is using versioneer.py from %s" - % (os.path.dirname(my_path), versioneer_py)) - except NameError: - pass - return root - - -def get_config_from_root(root): - """Read the project setup.cfg file to determine Versioneer config.""" - # This might raise OSError (if setup.cfg is missing), or - # configparser.NoSectionError (if it lacks a [versioneer] section), or - # configparser.NoOptionError (if it lacks "VCS="). See the docstring at - # the top of versioneer.py for instructions on writing your setup.cfg . - setup_cfg = os.path.join(root, "setup.cfg") - parser = configparser.ConfigParser() - with open(setup_cfg, "r") as cfg_file: - parser.read_file(cfg_file) - VCS = parser.get("versioneer", "VCS") # mandatory - - # Dict-like interface for non-mandatory entries - section = parser["versioneer"] - - cfg = VersioneerConfig() - cfg.VCS = VCS - cfg.style = section.get("style", "") - cfg.versionfile_source = section.get("versionfile_source") - cfg.versionfile_build = section.get("versionfile_build") - cfg.tag_prefix = section.get("tag_prefix") - if cfg.tag_prefix in ("''", '""'): - cfg.tag_prefix = "" - cfg.parentdir_prefix = section.get("parentdir_prefix") - cfg.verbose = section.get("verbose") - return cfg - - -class NotThisMethod(Exception): - """Exception raised if a method is not valid for the current scenario.""" - - -# these dictionaries contain VCS-specific tools -LONG_VERSION_PY: Dict[str, str] = {} -HANDLERS: Dict[str, Dict[str, Callable]] = {} - - -def register_vcs_handler(vcs, method): # decorator - """Create decorator to mark a method as the handler of a VCS.""" - def decorate(f): - """Store f in HANDLERS[vcs][method].""" - HANDLERS.setdefault(vcs, {})[method] = f - return f - return decorate - - -def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, - env=None): - """Call the given command(s).""" - assert isinstance(commands, list) - process = None - for command in commands: - try: - dispcmd = str([command] + args) - # remember shell=False, so use git.cmd on windows, not just git - process = subprocess.Popen([command] + args, cwd=cwd, env=env, - stdout=subprocess.PIPE, - stderr=(subprocess.PIPE if hide_stderr - else None)) - break - except OSError: - e = sys.exc_info()[1] - if e.errno == errno.ENOENT: - continue - if verbose: - print("unable to run %s" % dispcmd) - print(e) - return None, None - else: - if verbose: - print("unable to find command, tried %s" % (commands,)) - return None, None - stdout = process.communicate()[0].strip().decode() - if process.returncode != 0: - if verbose: - print("unable to run %s (error)" % dispcmd) - print("stdout was %s" % stdout) - return None, process.returncode - return stdout, process.returncode - - -LONG_VERSION_PY['git'] = r''' -# This file helps to compute a version number in source trees obtained from -# git-archive tarball (such as those provided by githubs download-from-tag -# feature). Distribution tarballs (built by setup.py sdist) and build -# directories (produced by setup.py build) will contain a much shorter file -# that just contains the computed version number. - -# This file is released into the public domain. Generated by -# versioneer-0.21 (https://github.com/python-versioneer/python-versioneer) - -"""Git implementation of _version.py.""" - -import errno -import os -import re -import subprocess -import sys -from typing import Callable, Dict - - -def get_keywords(): - """Get the keywords needed to look up the version information.""" - # these strings will be replaced by git during git-archive. - # setup.py/versioneer.py will grep for the variable names, so they must - # each be defined on a line of their own. _version.py will just call - # get_keywords(). - git_refnames = "%(DOLLAR)sFormat:%%d%(DOLLAR)s" - git_full = "%(DOLLAR)sFormat:%%H%(DOLLAR)s" - git_date = "%(DOLLAR)sFormat:%%ci%(DOLLAR)s" - keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} - return keywords - - -class VersioneerConfig: - """Container for Versioneer configuration parameters.""" - - -def get_config(): - """Create, populate and return the VersioneerConfig() object.""" - # these strings are filled in when 'setup.py versioneer' creates - # _version.py - cfg = VersioneerConfig() - cfg.VCS = "git" - cfg.style = "%(STYLE)s" - cfg.tag_prefix = "%(TAG_PREFIX)s" - cfg.parentdir_prefix = "%(PARENTDIR_PREFIX)s" - cfg.versionfile_source = "%(VERSIONFILE_SOURCE)s" - cfg.verbose = False - return cfg - - -class NotThisMethod(Exception): - """Exception raised if a method is not valid for the current scenario.""" - - -LONG_VERSION_PY: Dict[str, str] = {} -HANDLERS: Dict[str, Dict[str, Callable]] = {} - - -def register_vcs_handler(vcs, method): # decorator - """Create decorator to mark a method as the handler of a VCS.""" - def decorate(f): - """Store f in HANDLERS[vcs][method].""" - if vcs not in HANDLERS: - HANDLERS[vcs] = {} - HANDLERS[vcs][method] = f - return f - return decorate - - -def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, - env=None): - """Call the given command(s).""" - assert isinstance(commands, list) - process = None - for command in commands: - try: - dispcmd = str([command] + args) - # remember shell=False, so use git.cmd on windows, not just git - process = subprocess.Popen([command] + args, cwd=cwd, env=env, - stdout=subprocess.PIPE, - stderr=(subprocess.PIPE if hide_stderr - else None)) - break - except OSError: - e = sys.exc_info()[1] - if e.errno == errno.ENOENT: - continue - if verbose: - print("unable to run %%s" %% dispcmd) - print(e) - return None, None - else: - if verbose: - print("unable to find command, tried %%s" %% (commands,)) - return None, None - stdout = process.communicate()[0].strip().decode() - if process.returncode != 0: - if verbose: - print("unable to run %%s (error)" %% dispcmd) - print("stdout was %%s" %% stdout) - return None, process.returncode - return stdout, process.returncode - - -def versions_from_parentdir(parentdir_prefix, root, verbose): - """Try to determine the version from the parent directory name. - - Source tarballs conventionally unpack into a directory that includes both - the project name and a version string. We will also support searching up - two directory levels for an appropriately named parent directory - """ - rootdirs = [] - - for _ in range(3): - dirname = os.path.basename(root) - if dirname.startswith(parentdir_prefix): - return {"version": dirname[len(parentdir_prefix):], - "full-revisionid": None, - "dirty": False, "error": None, "date": None} - rootdirs.append(root) - root = os.path.dirname(root) # up a level - - if verbose: - print("Tried directories %%s but none started with prefix %%s" %% - (str(rootdirs), parentdir_prefix)) - raise NotThisMethod("rootdir doesn't start with parentdir_prefix") - - -@register_vcs_handler("git", "get_keywords") -def git_get_keywords(versionfile_abs): - """Extract version information from the given file.""" - # the code embedded in _version.py can just fetch the value of these - # keywords. When used from setup.py, we don't want to import _version.py, - # so we do it with a regexp instead. This function is not used from - # _version.py. - keywords = {} - try: - with open(versionfile_abs, "r") as fobj: - for line in fobj: - if line.strip().startswith("git_refnames ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["refnames"] = mo.group(1) - if line.strip().startswith("git_full ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["full"] = mo.group(1) - if line.strip().startswith("git_date ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["date"] = mo.group(1) - except OSError: - pass - return keywords - - -@register_vcs_handler("git", "keywords") -def git_versions_from_keywords(keywords, tag_prefix, verbose): - """Get version information from git keywords.""" - if "refnames" not in keywords: - raise NotThisMethod("Short version file found") - date = keywords.get("date") - if date is not None: - # Use only the last line. Previous lines may contain GPG signature - # information. - date = date.splitlines()[-1] - - # git-2.2.0 added "%%cI", which expands to an ISO-8601 -compliant - # datestamp. However we prefer "%%ci" (which expands to an "ISO-8601 - # -like" string, which we must then edit to make compliant), because - # it's been around since git-1.5.3, and it's too difficult to - # discover which version we're using, or to work around using an - # older one. - date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) - refnames = keywords["refnames"].strip() - if refnames.startswith("$Format"): - if verbose: - print("keywords are unexpanded, not using") - raise NotThisMethod("unexpanded keywords, not a git-archive tarball") - refs = {r.strip() for r in refnames.strip("()").split(",")} - # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of - # just "foo-1.0". If we see a "tag: " prefix, prefer those. - TAG = "tag: " - tags = {r[len(TAG):] for r in refs if r.startswith(TAG)} - if not tags: - # Either we're using git < 1.8.3, or there really are no tags. We use - # a heuristic: assume all version tags have a digit. The old git %%d - # expansion behaves like git log --decorate=short and strips out the - # refs/heads/ and refs/tags/ prefixes that would let us distinguish - # between branches and tags. By ignoring refnames without digits, we - # filter out many common branch names like "release" and - # "stabilization", as well as "HEAD" and "master". - tags = {r for r in refs if re.search(r'\d', r)} - if verbose: - print("discarding '%%s', no digits" %% ",".join(refs - tags)) - if verbose: - print("likely tags: %%s" %% ",".join(sorted(tags))) - for ref in sorted(tags): - # sorting will prefer e.g. "2.0" over "2.0rc1" - if ref.startswith(tag_prefix): - r = ref[len(tag_prefix):] - # Filter out refs that exactly match prefix or that don't start - # with a number once the prefix is stripped (mostly a concern - # when prefix is '') - if not re.match(r'\d', r): - continue - if verbose: - print("picking %%s" %% r) - return {"version": r, - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": None, - "date": date} - # no suitable tags, so version is "0+unknown", but full hex is still there - if verbose: - print("no suitable tags, using unknown + full revision id") - return {"version": "0+unknown", - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": "no suitable tags", "date": None} - - -@register_vcs_handler("git", "pieces_from_vcs") -def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): - """Get version from 'git describe' in the root of the source tree. - - This only gets called if the git-archive 'subst' keywords were *not* - expanded, and _version.py hasn't already been rewritten with a short - version string, meaning we're inside a checked out source tree. - """ - GITS = ["git"] - TAG_PREFIX_REGEX = "*" - if sys.platform == "win32": - GITS = ["git.cmd", "git.exe"] - TAG_PREFIX_REGEX = r"\*" - - _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, - hide_stderr=True) - if rc != 0: - if verbose: - print("Directory %%s not under git control" %% root) - raise NotThisMethod("'git rev-parse --git-dir' returned error") - - # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] - # if there isn't one, this yields HEX[-dirty] (no NUM) - describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty", - "--always", "--long", - "--match", - "%%s%%s" %% (tag_prefix, TAG_PREFIX_REGEX)], - cwd=root) - # --long was added in git-1.5.5 - if describe_out is None: - raise NotThisMethod("'git describe' failed") - describe_out = describe_out.strip() - full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) - if full_out is None: - raise NotThisMethod("'git rev-parse' failed") - full_out = full_out.strip() - - pieces = {} - pieces["long"] = full_out - pieces["short"] = full_out[:7] # maybe improved later - pieces["error"] = None - - branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], - cwd=root) - # --abbrev-ref was added in git-1.6.3 - if rc != 0 or branch_name is None: - raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") - branch_name = branch_name.strip() - - if branch_name == "HEAD": - # If we aren't exactly on a branch, pick a branch which represents - # the current commit. If all else fails, we are on a branchless - # commit. - branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) - # --contains was added in git-1.5.4 - if rc != 0 or branches is None: - raise NotThisMethod("'git branch --contains' returned error") - branches = branches.split("\n") - - # Remove the first line if we're running detached - if "(" in branches[0]: - branches.pop(0) - - # Strip off the leading "* " from the list of branches. - branches = [branch[2:] for branch in branches] - if "master" in branches: - branch_name = "master" - elif not branches: - branch_name = None - else: - # Pick the first branch that is returned. Good or bad. - branch_name = branches[0] - - pieces["branch"] = branch_name - - # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] - # TAG might have hyphens. - git_describe = describe_out - - # look for -dirty suffix - dirty = git_describe.endswith("-dirty") - pieces["dirty"] = dirty - if dirty: - git_describe = git_describe[:git_describe.rindex("-dirty")] - - # now we have TAG-NUM-gHEX or HEX - - if "-" in git_describe: - # TAG-NUM-gHEX - mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) - if not mo: - # unparsable. Maybe git-describe is misbehaving? - pieces["error"] = ("unable to parse git-describe output: '%%s'" - %% describe_out) - return pieces - - # tag - full_tag = mo.group(1) - if not full_tag.startswith(tag_prefix): - if verbose: - fmt = "tag '%%s' doesn't start with prefix '%%s'" - print(fmt %% (full_tag, tag_prefix)) - pieces["error"] = ("tag '%%s' doesn't start with prefix '%%s'" - %% (full_tag, tag_prefix)) - return pieces - pieces["closest-tag"] = full_tag[len(tag_prefix):] - - # distance: number of commits since tag - pieces["distance"] = int(mo.group(2)) - - # commit: short hex revision ID - pieces["short"] = mo.group(3) - - else: - # HEX: no tags - pieces["closest-tag"] = None - count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root) - pieces["distance"] = int(count_out) # total number of commits - - # commit date: see ISO-8601 comment in git_versions_from_keywords() - date = runner(GITS, ["show", "-s", "--format=%%ci", "HEAD"], cwd=root)[0].strip() - # Use only the last line. Previous lines may contain GPG signature - # information. - date = date.splitlines()[-1] - pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) - - return pieces - - -def plus_or_dot(pieces): - """Return a + if we don't already have one, else return a .""" - if "+" in pieces.get("closest-tag", ""): - return "." - return "+" - - -def render_pep440(pieces): - """Build up version string, with post-release "local version identifier". - - Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you - get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty - - Exceptions: - 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += plus_or_dot(pieces) - rendered += "%%d.g%%s" %% (pieces["distance"], pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0+untagged.%%d.g%%s" %% (pieces["distance"], - pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def render_pep440_branch(pieces): - """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . - - The ".dev0" means not master branch. Note that .dev0 sorts backwards - (a feature branch will appear "older" than the master branch). - - Exceptions: - 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "%%d.g%%s" %% (pieces["distance"], pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0" - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += "+untagged.%%d.g%%s" %% (pieces["distance"], - pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def pep440_split_post(ver): - """Split pep440 version string at the post-release segment. - - Returns the release segments before the post-release and the - post-release version number (or -1 if no post-release segment is present). - """ - vc = str.split(ver, ".post") - return vc[0], int(vc[1] or 0) if len(vc) == 2 else None - - -def render_pep440_pre(pieces): - """TAG[.postN.devDISTANCE] -- No -dirty. - - Exceptions: - 1: no tags. 0.post0.devDISTANCE - """ - if pieces["closest-tag"]: - if pieces["distance"]: - # update the post release segment - tag_version, post_version = pep440_split_post(pieces["closest-tag"]) - rendered = tag_version - if post_version is not None: - rendered += ".post%%d.dev%%d" %% (post_version+1, pieces["distance"]) - else: - rendered += ".post0.dev%%d" %% (pieces["distance"]) - else: - # no commits, use the tag as the version - rendered = pieces["closest-tag"] - else: - # exception #1 - rendered = "0.post0.dev%%d" %% pieces["distance"] - return rendered - - -def render_pep440_post(pieces): - """TAG[.postDISTANCE[.dev0]+gHEX] . - - The ".dev0" means dirty. Note that .dev0 sorts backwards - (a dirty tree will appear "older" than the corresponding clean one), - but you shouldn't be releasing software with -dirty anyways. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%%d" %% pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "g%%s" %% pieces["short"] - else: - # exception #1 - rendered = "0.post%%d" %% pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += "+g%%s" %% pieces["short"] - return rendered - - -def render_pep440_post_branch(pieces): - """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . - - The ".dev0" means not master branch. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%%d" %% pieces["distance"] - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "g%%s" %% pieces["short"] - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0.post%%d" %% pieces["distance"] - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += "+g%%s" %% pieces["short"] - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def render_pep440_old(pieces): - """TAG[.postDISTANCE[.dev0]] . - - The ".dev0" means dirty. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%%d" %% pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - else: - # exception #1 - rendered = "0.post%%d" %% pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - return rendered - - -def render_git_describe(pieces): - """TAG[-DISTANCE-gHEX][-dirty]. - - Like 'git describe --tags --dirty --always'. - - Exceptions: - 1: no tags. HEX[-dirty] (note: no 'g' prefix) - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += "-%%d-g%%s" %% (pieces["distance"], pieces["short"]) - else: - # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" - return rendered - - -def render_git_describe_long(pieces): - """TAG-DISTANCE-gHEX[-dirty]. - - Like 'git describe --tags --dirty --always -long'. - The distance/hash is unconditional. - - Exceptions: - 1: no tags. HEX[-dirty] (note: no 'g' prefix) - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - rendered += "-%%d-g%%s" %% (pieces["distance"], pieces["short"]) - else: - # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" - return rendered - - -def render(pieces, style): - """Render the given version pieces into the requested style.""" - if pieces["error"]: - return {"version": "unknown", - "full-revisionid": pieces.get("long"), - "dirty": None, - "error": pieces["error"], - "date": None} - - if not style or style == "default": - style = "pep440" # the default - - if style == "pep440": - rendered = render_pep440(pieces) - elif style == "pep440-branch": - rendered = render_pep440_branch(pieces) - elif style == "pep440-pre": - rendered = render_pep440_pre(pieces) - elif style == "pep440-post": - rendered = render_pep440_post(pieces) - elif style == "pep440-post-branch": - rendered = render_pep440_post_branch(pieces) - elif style == "pep440-old": - rendered = render_pep440_old(pieces) - elif style == "git-describe": - rendered = render_git_describe(pieces) - elif style == "git-describe-long": - rendered = render_git_describe_long(pieces) - else: - raise ValueError("unknown style '%%s'" %% style) - - return {"version": rendered, "full-revisionid": pieces["long"], - "dirty": pieces["dirty"], "error": None, - "date": pieces.get("date")} - - -def get_versions(): - """Get version information or return default if unable to do so.""" - # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have - # __file__, we can work backwards from there to the root. Some - # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which - # case we can only use expanded keywords. - - cfg = get_config() - verbose = cfg.verbose - - try: - return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, - verbose) - except NotThisMethod: - pass - - try: - root = os.path.realpath(__file__) - # versionfile_source is the relative path from the top of the source - # tree (where the .git directory might live) to this file. Invert - # this to find the root from __file__. - for _ in cfg.versionfile_source.split('/'): - root = os.path.dirname(root) - except NameError: - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to find root of source tree", - "date": None} - - try: - pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) - return render(pieces, cfg.style) - except NotThisMethod: - pass - - try: - if cfg.parentdir_prefix: - return versions_from_parentdir(cfg.parentdir_prefix, root, verbose) - except NotThisMethod: - pass - - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to compute version", "date": None} -''' - - -@register_vcs_handler("git", "get_keywords") -def git_get_keywords(versionfile_abs): - """Extract version information from the given file.""" - # the code embedded in _version.py can just fetch the value of these - # keywords. When used from setup.py, we don't want to import _version.py, - # so we do it with a regexp instead. This function is not used from - # _version.py. - keywords = {} - try: - with open(versionfile_abs, "r") as fobj: - for line in fobj: - if line.strip().startswith("git_refnames ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["refnames"] = mo.group(1) - if line.strip().startswith("git_full ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["full"] = mo.group(1) - if line.strip().startswith("git_date ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["date"] = mo.group(1) - except OSError: - pass - return keywords - - -@register_vcs_handler("git", "keywords") -def git_versions_from_keywords(keywords, tag_prefix, verbose): - """Get version information from git keywords.""" - if "refnames" not in keywords: - raise NotThisMethod("Short version file found") - date = keywords.get("date") - if date is not None: - # Use only the last line. Previous lines may contain GPG signature - # information. - date = date.splitlines()[-1] - - # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant - # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 - # -like" string, which we must then edit to make compliant), because - # it's been around since git-1.5.3, and it's too difficult to - # discover which version we're using, or to work around using an - # older one. - date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) - refnames = keywords["refnames"].strip() - if refnames.startswith("$Format"): - if verbose: - print("keywords are unexpanded, not using") - raise NotThisMethod("unexpanded keywords, not a git-archive tarball") - refs = {r.strip() for r in refnames.strip("()").split(",")} - # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of - # just "foo-1.0". If we see a "tag: " prefix, prefer those. - TAG = "tag: " - tags = {r[len(TAG):] for r in refs if r.startswith(TAG)} - if not tags: - # Either we're using git < 1.8.3, or there really are no tags. We use - # a heuristic: assume all version tags have a digit. The old git %d - # expansion behaves like git log --decorate=short and strips out the - # refs/heads/ and refs/tags/ prefixes that would let us distinguish - # between branches and tags. By ignoring refnames without digits, we - # filter out many common branch names like "release" and - # "stabilization", as well as "HEAD" and "master". - tags = {r for r in refs if re.search(r'\d', r)} - if verbose: - print("discarding '%s', no digits" % ",".join(refs - tags)) - if verbose: - print("likely tags: %s" % ",".join(sorted(tags))) - for ref in sorted(tags): - # sorting will prefer e.g. "2.0" over "2.0rc1" - if ref.startswith(tag_prefix): - r = ref[len(tag_prefix):] - # Filter out refs that exactly match prefix or that don't start - # with a number once the prefix is stripped (mostly a concern - # when prefix is '') - if not re.match(r'\d', r): - continue - if verbose: - print("picking %s" % r) - return {"version": r, - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": None, - "date": date} - # no suitable tags, so version is "0+unknown", but full hex is still there - if verbose: - print("no suitable tags, using unknown + full revision id") - return {"version": "0+unknown", - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": "no suitable tags", "date": None} - - -@register_vcs_handler("git", "pieces_from_vcs") -def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): - """Get version from 'git describe' in the root of the source tree. - - This only gets called if the git-archive 'subst' keywords were *not* - expanded, and _version.py hasn't already been rewritten with a short - version string, meaning we're inside a checked out source tree. - """ - GITS = ["git"] - TAG_PREFIX_REGEX = "*" - if sys.platform == "win32": - GITS = ["git.cmd", "git.exe"] - TAG_PREFIX_REGEX = r"\*" - - _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, - hide_stderr=True) - if rc != 0: - if verbose: - print("Directory %s not under git control" % root) - raise NotThisMethod("'git rev-parse --git-dir' returned error") - - # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] - # if there isn't one, this yields HEX[-dirty] (no NUM) - describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty", - "--always", "--long", - "--match", - "%s%s" % (tag_prefix, TAG_PREFIX_REGEX)], - cwd=root) - # --long was added in git-1.5.5 - if describe_out is None: - raise NotThisMethod("'git describe' failed") - describe_out = describe_out.strip() - full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) - if full_out is None: - raise NotThisMethod("'git rev-parse' failed") - full_out = full_out.strip() - - pieces = {} - pieces["long"] = full_out - pieces["short"] = full_out[:7] # maybe improved later - pieces["error"] = None - - branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], - cwd=root) - # --abbrev-ref was added in git-1.6.3 - if rc != 0 or branch_name is None: - raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") - branch_name = branch_name.strip() - - if branch_name == "HEAD": - # If we aren't exactly on a branch, pick a branch which represents - # the current commit. If all else fails, we are on a branchless - # commit. - branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) - # --contains was added in git-1.5.4 - if rc != 0 or branches is None: - raise NotThisMethod("'git branch --contains' returned error") - branches = branches.split("\n") - - # Remove the first line if we're running detached - if "(" in branches[0]: - branches.pop(0) - - # Strip off the leading "* " from the list of branches. - branches = [branch[2:] for branch in branches] - if "master" in branches: - branch_name = "master" - elif not branches: - branch_name = None - else: - # Pick the first branch that is returned. Good or bad. - branch_name = branches[0] - - pieces["branch"] = branch_name - - # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] - # TAG might have hyphens. - git_describe = describe_out - - # look for -dirty suffix - dirty = git_describe.endswith("-dirty") - pieces["dirty"] = dirty - if dirty: - git_describe = git_describe[:git_describe.rindex("-dirty")] - - # now we have TAG-NUM-gHEX or HEX - - if "-" in git_describe: - # TAG-NUM-gHEX - mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) - if not mo: - # unparsable. Maybe git-describe is misbehaving? - pieces["error"] = ("unable to parse git-describe output: '%s'" - % describe_out) - return pieces - - # tag - full_tag = mo.group(1) - if not full_tag.startswith(tag_prefix): - if verbose: - fmt = "tag '%s' doesn't start with prefix '%s'" - print(fmt % (full_tag, tag_prefix)) - pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" - % (full_tag, tag_prefix)) - return pieces - pieces["closest-tag"] = full_tag[len(tag_prefix):] - - # distance: number of commits since tag - pieces["distance"] = int(mo.group(2)) - - # commit: short hex revision ID - pieces["short"] = mo.group(3) - - else: - # HEX: no tags - pieces["closest-tag"] = None - count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root) - pieces["distance"] = int(count_out) # total number of commits - - # commit date: see ISO-8601 comment in git_versions_from_keywords() - date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() - # Use only the last line. Previous lines may contain GPG signature - # information. - date = date.splitlines()[-1] - pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) - - return pieces - - -def do_vcs_install(manifest_in, versionfile_source, ipy): - """Git-specific installation logic for Versioneer. - - For Git, this means creating/changing .gitattributes to mark _version.py - for export-subst keyword substitution. - """ - GITS = ["git"] - if sys.platform == "win32": - GITS = ["git.cmd", "git.exe"] - files = [manifest_in, versionfile_source] - if ipy: - files.append(ipy) - try: - my_path = __file__ - if my_path.endswith(".pyc") or my_path.endswith(".pyo"): - my_path = os.path.splitext(my_path)[0] + ".py" - versioneer_file = os.path.relpath(my_path) - except NameError: - versioneer_file = "versioneer.py" - files.append(versioneer_file) - present = False - try: - with open(".gitattributes", "r") as fobj: - for line in fobj: - if line.strip().startswith(versionfile_source): - if "export-subst" in line.strip().split()[1:]: - present = True - break - except OSError: - pass - if not present: - with open(".gitattributes", "a+") as fobj: - fobj.write(f"{versionfile_source} export-subst\n") - files.append(".gitattributes") - run_command(GITS, ["add", "--"] + files) - - -def versions_from_parentdir(parentdir_prefix, root, verbose): - """Try to determine the version from the parent directory name. - - Source tarballs conventionally unpack into a directory that includes both - the project name and a version string. We will also support searching up - two directory levels for an appropriately named parent directory - """ - rootdirs = [] - - for _ in range(3): - dirname = os.path.basename(root) - if dirname.startswith(parentdir_prefix): - return {"version": dirname[len(parentdir_prefix):], - "full-revisionid": None, - "dirty": False, "error": None, "date": None} - rootdirs.append(root) - root = os.path.dirname(root) # up a level - - if verbose: - print("Tried directories %s but none started with prefix %s" % - (str(rootdirs), parentdir_prefix)) - raise NotThisMethod("rootdir doesn't start with parentdir_prefix") - - -SHORT_VERSION_PY = """ -# This file was generated by 'versioneer.py' (0.21) from -# revision-control system data, or from the parent directory name of an -# unpacked source archive. Distribution tarballs contain a pre-generated copy -# of this file. - -import json - -version_json = ''' -%s -''' # END VERSION_JSON - - -def get_versions(): - return json.loads(version_json) -""" - - -def versions_from_file(filename): - """Try to determine the version from _version.py if present.""" - try: - with open(filename) as f: - contents = f.read() - except OSError: - raise NotThisMethod("unable to read _version.py") - mo = re.search(r"version_json = '''\n(.*)''' # END VERSION_JSON", - contents, re.M | re.S) - if not mo: - mo = re.search(r"version_json = '''\r\n(.*)''' # END VERSION_JSON", - contents, re.M | re.S) - if not mo: - raise NotThisMethod("no version_json in _version.py") - return json.loads(mo.group(1)) - - -def write_to_version_file(filename, versions): - """Write the given version number to the given _version.py file.""" - os.unlink(filename) - contents = json.dumps(versions, sort_keys=True, - indent=1, separators=(",", ": ")) - with open(filename, "w") as f: - f.write(SHORT_VERSION_PY % contents) - - print("set %s to '%s'" % (filename, versions["version"])) - - -def plus_or_dot(pieces): - """Return a + if we don't already have one, else return a .""" - if "+" in pieces.get("closest-tag", ""): - return "." - return "+" - - -def render_pep440(pieces): - """Build up version string, with post-release "local version identifier". - - Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you - get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty - - Exceptions: - 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += plus_or_dot(pieces) - rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def render_pep440_branch(pieces): - """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . - - The ".dev0" means not master branch. Note that .dev0 sorts backwards - (a feature branch will appear "older" than the master branch). - - Exceptions: - 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0" - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += "+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def pep440_split_post(ver): - """Split pep440 version string at the post-release segment. - - Returns the release segments before the post-release and the - post-release version number (or -1 if no post-release segment is present). - """ - vc = str.split(ver, ".post") - return vc[0], int(vc[1] or 0) if len(vc) == 2 else None - - -def render_pep440_pre(pieces): - """TAG[.postN.devDISTANCE] -- No -dirty. - - Exceptions: - 1: no tags. 0.post0.devDISTANCE - """ - if pieces["closest-tag"]: - if pieces["distance"]: - # update the post release segment - tag_version, post_version = pep440_split_post(pieces["closest-tag"]) - rendered = tag_version - if post_version is not None: - rendered += ".post%d.dev%d" % (post_version+1, pieces["distance"]) - else: - rendered += ".post0.dev%d" % (pieces["distance"]) - else: - # no commits, use the tag as the version - rendered = pieces["closest-tag"] - else: - # exception #1 - rendered = "0.post0.dev%d" % pieces["distance"] - return rendered - - -def render_pep440_post(pieces): - """TAG[.postDISTANCE[.dev0]+gHEX] . - - The ".dev0" means dirty. Note that .dev0 sorts backwards - (a dirty tree will appear "older" than the corresponding clean one), - but you shouldn't be releasing software with -dirty anyways. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "g%s" % pieces["short"] - else: - # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += "+g%s" % pieces["short"] - return rendered - - -def render_pep440_post_branch(pieces): - """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . - - The ".dev0" means not master branch. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "g%s" % pieces["short"] - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += "+g%s" % pieces["short"] - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def render_pep440_old(pieces): - """TAG[.postDISTANCE[.dev0]] . - - The ".dev0" means dirty. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - else: - # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - return rendered - - -def render_git_describe(pieces): - """TAG[-DISTANCE-gHEX][-dirty]. - - Like 'git describe --tags --dirty --always'. - - Exceptions: - 1: no tags. HEX[-dirty] (note: no 'g' prefix) - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) - else: - # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" - return rendered - - -def render_git_describe_long(pieces): - """TAG-DISTANCE-gHEX[-dirty]. - - Like 'git describe --tags --dirty --always -long'. - The distance/hash is unconditional. - - Exceptions: - 1: no tags. HEX[-dirty] (note: no 'g' prefix) - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) - else: - # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" - return rendered - - -def render(pieces, style): - """Render the given version pieces into the requested style.""" - if pieces["error"]: - return {"version": "unknown", - "full-revisionid": pieces.get("long"), - "dirty": None, - "error": pieces["error"], - "date": None} - - if not style or style == "default": - style = "pep440" # the default - - if style == "pep440": - rendered = render_pep440(pieces) - elif style == "pep440-branch": - rendered = render_pep440_branch(pieces) - elif style == "pep440-pre": - rendered = render_pep440_pre(pieces) - elif style == "pep440-post": - rendered = render_pep440_post(pieces) - elif style == "pep440-post-branch": - rendered = render_pep440_post_branch(pieces) - elif style == "pep440-old": - rendered = render_pep440_old(pieces) - elif style == "git-describe": - rendered = render_git_describe(pieces) - elif style == "git-describe-long": - rendered = render_git_describe_long(pieces) - else: - raise ValueError("unknown style '%s'" % style) - - return {"version": rendered, "full-revisionid": pieces["long"], - "dirty": pieces["dirty"], "error": None, - "date": pieces.get("date")} - - -class VersioneerBadRootError(Exception): - """The project root directory is unknown or missing key files.""" - - -def get_versions(verbose=False): - """Get the project version from whatever source is available. - - Returns dict with two keys: 'version' and 'full'. - """ - if "versioneer" in sys.modules: - # see the discussion in cmdclass.py:get_cmdclass() - del sys.modules["versioneer"] - - root = get_root() - cfg = get_config_from_root(root) - - assert cfg.VCS is not None, "please set [versioneer]VCS= in setup.cfg" - handlers = HANDLERS.get(cfg.VCS) - assert handlers, "unrecognized VCS '%s'" % cfg.VCS - verbose = verbose or cfg.verbose - assert cfg.versionfile_source is not None, \ - "please set versioneer.versionfile_source" - assert cfg.tag_prefix is not None, "please set versioneer.tag_prefix" - - versionfile_abs = os.path.join(root, cfg.versionfile_source) - - # extract version from first of: _version.py, VCS command (e.g. 'git - # describe'), parentdir. This is meant to work for developers using a - # source checkout, for users of a tarball created by 'setup.py sdist', - # and for users of a tarball/zipball created by 'git archive' or github's - # download-from-tag feature or the equivalent in other VCSes. - - get_keywords_f = handlers.get("get_keywords") - from_keywords_f = handlers.get("keywords") - if get_keywords_f and from_keywords_f: - try: - keywords = get_keywords_f(versionfile_abs) - ver = from_keywords_f(keywords, cfg.tag_prefix, verbose) - if verbose: - print("got version from expanded keyword %s" % ver) - return ver - except NotThisMethod: - pass - - try: - ver = versions_from_file(versionfile_abs) - if verbose: - print("got version from file %s %s" % (versionfile_abs, ver)) - return ver - except NotThisMethod: - pass - - from_vcs_f = handlers.get("pieces_from_vcs") - if from_vcs_f: - try: - pieces = from_vcs_f(cfg.tag_prefix, root, verbose) - ver = render(pieces, cfg.style) - if verbose: - print("got version from VCS %s" % ver) - return ver - except NotThisMethod: - pass - - try: - if cfg.parentdir_prefix: - ver = versions_from_parentdir(cfg.parentdir_prefix, root, verbose) - if verbose: - print("got version from parentdir %s" % ver) - return ver - except NotThisMethod: - pass - - if verbose: - print("unable to compute version") - - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, "error": "unable to compute version", - "date": None} - - -def get_version(): - """Get the short version string for this project.""" - return get_versions()["version"] - - -def get_cmdclass(cmdclass=None): - """Get the custom setuptools/distutils subclasses used by Versioneer. - - If the package uses a different cmdclass (e.g. one from numpy), it - should be provide as an argument. - """ - if "versioneer" in sys.modules: - del sys.modules["versioneer"] - # this fixes the "python setup.py develop" case (also 'install' and - # 'easy_install .'), in which subdependencies of the main project are - # built (using setup.py bdist_egg) in the same python process. Assume - # a main project A and a dependency B, which use different versions - # of Versioneer. A's setup.py imports A's Versioneer, leaving it in - # sys.modules by the time B's setup.py is executed, causing B to run - # with the wrong versioneer. Setuptools wraps the sub-dep builds in a - # sandbox that restores sys.modules to it's pre-build state, so the - # parent is protected against the child's "import versioneer". By - # removing ourselves from sys.modules here, before the child build - # happens, we protect the child from the parent's versioneer too. - # Also see https://github.com/python-versioneer/python-versioneer/issues/52 - - cmds = {} if cmdclass is None else cmdclass.copy() - - # we add "version" to both distutils and setuptools - from distutils.core import Command - - class cmd_version(Command): - description = "report generated version string" - user_options = [] - boolean_options = [] - - def initialize_options(self): - pass - - def finalize_options(self): - pass - - def run(self): - vers = get_versions(verbose=True) - print("Version: %s" % vers["version"]) - print(" full-revisionid: %s" % vers.get("full-revisionid")) - print(" dirty: %s" % vers.get("dirty")) - print(" date: %s" % vers.get("date")) - if vers["error"]: - print(" error: %s" % vers["error"]) - cmds["version"] = cmd_version - - # we override "build_py" in both distutils and setuptools - # - # most invocation pathways end up running build_py: - # distutils/build -> build_py - # distutils/install -> distutils/build ->.. - # setuptools/bdist_wheel -> distutils/install ->.. - # setuptools/bdist_egg -> distutils/install_lib -> build_py - # setuptools/install -> bdist_egg ->.. - # setuptools/develop -> ? - # pip install: - # copies source tree to a tempdir before running egg_info/etc - # if .git isn't copied too, 'git describe' will fail - # then does setup.py bdist_wheel, or sometimes setup.py install - # setup.py egg_info -> ? - - # we override different "build_py" commands for both environments - if 'build_py' in cmds: - _build_py = cmds['build_py'] - elif "setuptools" in sys.modules: - from setuptools.command.build_py import build_py as _build_py - else: - from distutils.command.build_py import build_py as _build_py - - class cmd_build_py(_build_py): - def run(self): - root = get_root() - cfg = get_config_from_root(root) - versions = get_versions() - _build_py.run(self) - # now locate _version.py in the new build/ directory and replace - # it with an updated value - if cfg.versionfile_build: - target_versionfile = os.path.join(self.build_lib, - cfg.versionfile_build) - print("UPDATING %s" % target_versionfile) - write_to_version_file(target_versionfile, versions) - cmds["build_py"] = cmd_build_py - - if 'build_ext' in cmds: - _build_ext = cmds['build_ext'] - elif "setuptools" in sys.modules: - from setuptools.command.build_ext import build_ext as _build_ext - else: - from distutils.command.build_ext import build_ext as _build_ext - - class cmd_build_ext(_build_ext): - def run(self): - root = get_root() - cfg = get_config_from_root(root) - versions = get_versions() - _build_ext.run(self) - if self.inplace: - # build_ext --inplace will only build extensions in - # build/lib<..> dir with no _version.py to write to. - # As in place builds will already have a _version.py - # in the module dir, we do not need to write one. - return - # now locate _version.py in the new build/ directory and replace - # it with an updated value - target_versionfile = os.path.join(self.build_lib, - cfg.versionfile_build) - print("UPDATING %s" % target_versionfile) - write_to_version_file(target_versionfile, versions) - cmds["build_ext"] = cmd_build_ext - - if "cx_Freeze" in sys.modules: # cx_freeze enabled? - from cx_Freeze.dist import build_exe as _build_exe - # nczeczulin reports that py2exe won't like the pep440-style string - # as FILEVERSION, but it can be used for PRODUCTVERSION, e.g. - # setup(console=[{ - # "version": versioneer.get_version().split("+", 1)[0], # FILEVERSION - # "product_version": versioneer.get_version(), - # ... - - class cmd_build_exe(_build_exe): - def run(self): - root = get_root() - cfg = get_config_from_root(root) - versions = get_versions() - target_versionfile = cfg.versionfile_source - print("UPDATING %s" % target_versionfile) - write_to_version_file(target_versionfile, versions) - - _build_exe.run(self) - os.unlink(target_versionfile) - with open(cfg.versionfile_source, "w") as f: - LONG = LONG_VERSION_PY[cfg.VCS] - f.write(LONG % - {"DOLLAR": "$", - "STYLE": cfg.style, - "TAG_PREFIX": cfg.tag_prefix, - "PARENTDIR_PREFIX": cfg.parentdir_prefix, - "VERSIONFILE_SOURCE": cfg.versionfile_source, - }) - cmds["build_exe"] = cmd_build_exe - del cmds["build_py"] - - if 'py2exe' in sys.modules: # py2exe enabled? - from py2exe.distutils_buildexe import py2exe as _py2exe - - class cmd_py2exe(_py2exe): - def run(self): - root = get_root() - cfg = get_config_from_root(root) - versions = get_versions() - target_versionfile = cfg.versionfile_source - print("UPDATING %s" % target_versionfile) - write_to_version_file(target_versionfile, versions) - - _py2exe.run(self) - os.unlink(target_versionfile) - with open(cfg.versionfile_source, "w") as f: - LONG = LONG_VERSION_PY[cfg.VCS] - f.write(LONG % - {"DOLLAR": "$", - "STYLE": cfg.style, - "TAG_PREFIX": cfg.tag_prefix, - "PARENTDIR_PREFIX": cfg.parentdir_prefix, - "VERSIONFILE_SOURCE": cfg.versionfile_source, - }) - cmds["py2exe"] = cmd_py2exe - - # we override different "sdist" commands for both environments - if 'sdist' in cmds: - _sdist = cmds['sdist'] - elif "setuptools" in sys.modules: - from setuptools.command.sdist import sdist as _sdist - else: - from distutils.command.sdist import sdist as _sdist - - class cmd_sdist(_sdist): - def run(self): - versions = get_versions() - self._versioneer_generated_versions = versions - # unless we update this, the command will keep using the old - # version - self.distribution.metadata.version = versions["version"] - return _sdist.run(self) - - def make_release_tree(self, base_dir, files): - root = get_root() - cfg = get_config_from_root(root) - _sdist.make_release_tree(self, base_dir, files) - # now locate _version.py in the new base_dir directory - # (remembering that it may be a hardlink) and replace it with an - # updated value - target_versionfile = os.path.join(base_dir, cfg.versionfile_source) - print("UPDATING %s" % target_versionfile) - write_to_version_file(target_versionfile, - self._versioneer_generated_versions) - cmds["sdist"] = cmd_sdist - - return cmds - - -CONFIG_ERROR = """ -setup.cfg is missing the necessary Versioneer configuration. You need -a section like: - - [versioneer] - VCS = git - style = pep440 - versionfile_source = src/myproject/_version.py - versionfile_build = myproject/_version.py - tag_prefix = - parentdir_prefix = myproject- - -You will also need to edit your setup.py to use the results: - - import versioneer - setup(version=versioneer.get_version(), - cmdclass=versioneer.get_cmdclass(), ...) - -Please read the docstring in ./versioneer.py for configuration instructions, -edit setup.cfg, and re-run the installer or 'python versioneer.py setup'. -""" - -SAMPLE_CONFIG = """ -# See the docstring in versioneer.py for instructions. Note that you must -# re-run 'versioneer.py setup' after changing this section, and commit the -# resulting files. - -[versioneer] -#VCS = git -#style = pep440 -#versionfile_source = -#versionfile_build = -#tag_prefix = -#parentdir_prefix = - -""" - -OLD_SNIPPET = """ -from ._version import get_versions -__version__ = get_versions()['version'] -del get_versions -""" - -INIT_PY_SNIPPET = """ -from . import {0} -__version__ = {0}.get_versions()['version'] -""" - - -def do_setup(): - """Do main VCS-independent setup function for installing Versioneer.""" - root = get_root() - try: - cfg = get_config_from_root(root) - except (OSError, configparser.NoSectionError, - configparser.NoOptionError) as e: - if isinstance(e, (OSError, configparser.NoSectionError)): - print("Adding sample versioneer config to setup.cfg", - file=sys.stderr) - with open(os.path.join(root, "setup.cfg"), "a") as f: - f.write(SAMPLE_CONFIG) - print(CONFIG_ERROR, file=sys.stderr) - return 1 - - print(" creating %s" % cfg.versionfile_source) - with open(cfg.versionfile_source, "w") as f: - LONG = LONG_VERSION_PY[cfg.VCS] - f.write(LONG % {"DOLLAR": "$", - "STYLE": cfg.style, - "TAG_PREFIX": cfg.tag_prefix, - "PARENTDIR_PREFIX": cfg.parentdir_prefix, - "VERSIONFILE_SOURCE": cfg.versionfile_source, - }) - - ipy = os.path.join(os.path.dirname(cfg.versionfile_source), - "__init__.py") - if os.path.exists(ipy): - try: - with open(ipy, "r") as f: - old = f.read() - except OSError: - old = "" - module = os.path.splitext(os.path.basename(cfg.versionfile_source))[0] - snippet = INIT_PY_SNIPPET.format(module) - if OLD_SNIPPET in old: - print(" replacing boilerplate in %s" % ipy) - with open(ipy, "w") as f: - f.write(old.replace(OLD_SNIPPET, snippet)) - elif snippet not in old: - print(" appending to %s" % ipy) - with open(ipy, "a") as f: - f.write(snippet) - else: - print(" %s unmodified" % ipy) - else: - print(" %s doesn't exist, ok" % ipy) - ipy = None - - # Make sure both the top-level "versioneer.py" and versionfile_source - # (PKG/_version.py, used by runtime code) are in MANIFEST.in, so - # they'll be copied into source distributions. Pip won't be able to - # install the package without this. - manifest_in = os.path.join(root, "MANIFEST.in") - simple_includes = set() - try: - with open(manifest_in, "r") as f: - for line in f: - if line.startswith("include "): - for include in line.split()[1:]: - simple_includes.add(include) - except OSError: - pass - # That doesn't cover everything MANIFEST.in can do - # (http://docs.python.org/2/distutils/sourcedist.html#commands), so - # it might give some false negatives. Appending redundant 'include' - # lines is safe, though. - if "versioneer.py" not in simple_includes: - print(" appending 'versioneer.py' to MANIFEST.in") - with open(manifest_in, "a") as f: - f.write("include versioneer.py\n") - else: - print(" 'versioneer.py' already in MANIFEST.in") - if cfg.versionfile_source not in simple_includes: - print(" appending versionfile_source ('%s') to MANIFEST.in" % - cfg.versionfile_source) - with open(manifest_in, "a") as f: - f.write("include %s\n" % cfg.versionfile_source) - else: - print(" versionfile_source already in MANIFEST.in") - - # Make VCS-specific changes. For git, this means creating/changing - # .gitattributes to mark _version.py for export-subst keyword - # substitution. - do_vcs_install(manifest_in, cfg.versionfile_source, ipy) - return 0 - - -def scan_setup_py(): - """Validate the contents of setup.py against Versioneer's expectations.""" - found = set() - setters = False - errors = 0 - with open("setup.py", "r") as f: - for line in f.readlines(): - if "import versioneer" in line: - found.add("import") - if "versioneer.get_cmdclass()" in line: - found.add("cmdclass") - if "versioneer.get_version()" in line: - found.add("get_version") - if "versioneer.VCS" in line: - setters = True - if "versioneer.versionfile_source" in line: - setters = True - if len(found) != 3: - print("") - print("Your setup.py appears to be missing some important items") - print("(but I might be wrong). Please make sure it has something") - print("roughly like the following:") - print("") - print(" import versioneer") - print(" setup( version=versioneer.get_version(),") - print(" cmdclass=versioneer.get_cmdclass(), ...)") - print("") - errors += 1 - if setters: - print("You should remove lines like 'versioneer.VCS = ' and") - print("'versioneer.versionfile_source = ' . This configuration") - print("now lives in setup.cfg, and should be removed from setup.py") - print("") - errors += 1 - return errors - - -if __name__ == "__main__": - cmd = sys.argv[1] - if cmd == "setup": - errors = do_setup() - errors += scan_setup_py() - if errors: - sys.exit(1) From 1a1b77769d7f924fc018fb303e6f656826c578a1 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 12:05:07 +0930 Subject: [PATCH 025/222] feat(mkdocs): use custom plugin from custom-plugins/mkdocs-plugin-tags this is a custom theme modified so it works correctly issue #3 !1 --- mkdocs.yml | 9 +++++++-- pages/stylesheets/extra.css | 14 ++++++++++++++ pages/tags.md | 3 +++ requirements.txt | 8 ++++---- 4 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 pages/tags.md diff --git a/mkdocs.yml b/mkdocs.yml index 540298b..6db4616 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -53,8 +53,10 @@ theme: plugins: -# - tags: -# tags_file: tags.md + - tags: + filename: tags.md + folder: pages + css_name: ".tags" - search: lang: en @@ -63,6 +65,7 @@ plugins: enable_creation_date: true exclude: - index.md + - tags.md extra: homepage: https://nofusscomputing.com @@ -118,6 +121,8 @@ nav: - articles/2015/choose_internet_service.md + - tags: tags.md + - Projects: - projects/index.md diff --git a/pages/stylesheets/extra.css b/pages/stylesheets/extra.css index e3a3149..2d2a442 100644 --- a/pages/stylesheets/extra.css +++ b/pages/stylesheets/extra.css @@ -31,3 +31,17 @@ html .md-social a[title="Gitlab"] { color: #fc6d26; } +.tags { + background-color: #4051B5; + border-radius: 10px; + font-size: 12px; + color: white; + padding: 3px 6px; + text-align: center; + +} + +.tags:link { + color: white; +} + diff --git a/pages/tags.md b/pages/tags.md new file mode 100644 index 0000000..df6991d --- /dev/null +++ b/pages/tags.md @@ -0,0 +1,3 @@ +# tags + +Do not edit this file as it is auto generated. diff --git a/requirements.txt b/requirements.txt index 78dce9c..0556ff6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ -mkdocs>=1.2.3 -mkdocs-material-extensions>=1.0.3 +mkdocs==1.2.3 +mkdocs-material-extensions==1.0.3 mkdocs-material==8.1.7 -mkdocs-plugin-tags==1.0.2 +./custom-plugins/mkdocs-plugin-tags mkdocs-git-revision-date-localized-plugin==0.11.1 -pymdown-extensions +pymdown-extensions==9.1 From f2969de739230bc8c5d44c15a65c61bfdfc74027 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 12:11:18 +0930 Subject: [PATCH 026/222] refactor(markdown_lint): correct linting errors MR !1 --- custom-plugins/mkdocs-plugin-tags/LICENSE.md | 1 + custom-plugins/mkdocs-plugin-tags/README.md | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/custom-plugins/mkdocs-plugin-tags/LICENSE.md b/custom-plugins/mkdocs-plugin-tags/LICENSE.md index ff9ec97..4720011 100644 --- a/custom-plugins/mkdocs-plugin-tags/LICENSE.md +++ b/custom-plugins/mkdocs-plugin-tags/LICENSE.md @@ -1,4 +1,5 @@ # License + Copyright (C) 2021 No Fuss Computing All Rights Reserved. diff --git a/custom-plugins/mkdocs-plugin-tags/README.md b/custom-plugins/mkdocs-plugin-tags/README.md index 9c6b4d8..b473fd9 100644 --- a/custom-plugins/mkdocs-plugin-tags/README.md +++ b/custom-plugins/mkdocs-plugin-tags/README.md @@ -1,8 +1,9 @@ # No Fuss Computing's Tags Plugin for MKDocs -Modified version from: https://github.com/ginsburgnm/mkdocs-plugin-tags.git +Modified version from: [github.com/ginsburgnm/mkdocs-plugin-tags](https://github.com/ginsburgnm/mkdocs-plugin-tags) + +## Previous Readme below - tags -# Previous Readme below - tags Support for tags in the yaml-metadata in the header of markdown files. Extracts this metadata and creates a "Tags" page which lists all tags From 10a81f0bed073ef865e8c98013ae186d7c70a467 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 12:26:50 +0930 Subject: [PATCH 027/222] fix(mkdocs-plugin-tags): ensure heading reference in a url is in lower case. issue #3 !1 --- custom-plugins/mkdocs-plugin-tags/tags/plugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-plugins/mkdocs-plugin-tags/tags/plugin.py b/custom-plugins/mkdocs-plugin-tags/tags/plugin.py index 2584488..dd7cb29 100644 --- a/custom-plugins/mkdocs-plugin-tags/tags/plugin.py +++ b/custom-plugins/mkdocs-plugin-tags/tags/plugin.py @@ -55,7 +55,7 @@ class TagsPlugin(BasePlugin): tags_link = tags_link + '../' if 'tags' in page.meta: - swap_mark = [f"[{x}]({tags_link}{str(self.filename).strip('.md')}#{x}){{{self.css_name}}}" + swap_mark = [f"[{x}]({tags_link}{str(self.filename).strip('.md')}#{x.lower()}){{{self.css_name}}}" for x in page.meta['tags']] swap_mark.append('\n') return f'{" ".join(swap_mark)}{markdown}' From 93ceceb3965f93ae4b0d0d3ffa86c0002927ee4b Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 12:27:51 +0930 Subject: [PATCH 028/222] refactor(navigation): rename tags -> 'Content Tags' MR !1 --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 6db4616..f716c97 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -121,7 +121,7 @@ nav: - articles/2015/choose_internet_service.md - - tags: tags.md + - Content Tags: tags.md - Projects: From 72ed1cb4408fcddf202e819cf73c3ce9d9cb2169 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 12:37:26 +0930 Subject: [PATCH 029/222] refactor: change hover for content tags to yellow text. MR !1 --- pages/stylesheets/extra.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pages/stylesheets/extra.css b/pages/stylesheets/extra.css index 2d2a442..e2513c6 100644 --- a/pages/stylesheets/extra.css +++ b/pages/stylesheets/extra.css @@ -41,7 +41,14 @@ html .md-social a[title="Gitlab"] { } +a.tags:hover { + color: #FFFF00; +} + .tags:link { color: white; } +.tags:visited { + color: white; +} From d6524ac9cf2e305218ec5d3862b85d12b341ba48 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 12:59:09 +0930 Subject: [PATCH 030/222] feat(markdownlint): specifiy the allowed inline html elements MR !1 --- .markdownlint.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.markdownlint.json b/.markdownlint.json index 6fc0c6a..ff5d514 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,7 +1,9 @@ { "line-length": false, - "no-inline-html": false, "MD007": { "indent": 4 + }, + "MD033": { + "allowed_elements": [ "div", "s", "span", "u" ] } } From 54b75f38b432050836f1f0f41eb6a9f9235ca88d Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 12:59:59 +0930 Subject: [PATCH 031/222] fix(mkdocs-plugin-tags): fix markdown generation so it passes linting MR !1 --- .../mkdocs-plugin-tags/tags/templates/tags.md.template | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template b/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template index 17b91e6..9be07a9 100644 --- a/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template +++ b/custom-plugins/mkdocs-plugin-tags/tags/templates/tags.md.template @@ -1,12 +1,6 @@ ---- -title: Tags ---- - # Contents grouped by tag - {% for tag, pages in tags %} ## {{tag}} {% for page in pages %} - * [{{page.title}}]({{page.filename}}) -{% endfor %} -{% endfor %} +* [{{page.title}}]({{page.filename}}) +{% endfor %}{% endfor %} From 9d9f9c73c8261cb6a4529acb7c59f4085fd2df27 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 13:49:12 +0930 Subject: [PATCH 032/222] feat(blog): added blog capability to posts Github source: url: https://github.com/4kelly/material-mkdocs-blog commit: a34df0d7c70fd9b327de4b3b8f0ffcd213aa6afa branches: (HEAD -> main, origin/main, origin/HEAD) issue #3 MR !1 --- theme-overrides/.icons/brand/docker.svg | 1 + theme-overrides/blog_list.html | 32 +++++++++++++++++++ theme-overrides/blog_post.html | 11 +++++++ .../partials/blog_extended_preview.html | 7 ++++ theme-overrides/partials/blog_metadata.html | 31 ++++++++++++++++++ theme-overrides/partials/blog_social.html | 17 ++++++++++ 6 files changed, 99 insertions(+) create mode 100644 theme-overrides/.icons/brand/docker.svg create mode 100644 theme-overrides/blog_list.html create mode 100644 theme-overrides/blog_post.html create mode 100644 theme-overrides/partials/blog_extended_preview.html create mode 100644 theme-overrides/partials/blog_metadata.html create mode 100644 theme-overrides/partials/blog_social.html diff --git a/theme-overrides/.icons/brand/docker.svg b/theme-overrides/.icons/brand/docker.svg new file mode 100644 index 0000000..c4b1319 --- /dev/null +++ b/theme-overrides/.icons/brand/docker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/theme-overrides/blog_list.html b/theme-overrides/blog_list.html new file mode 100644 index 0000000..8129901 --- /dev/null +++ b/theme-overrides/blog_list.html @@ -0,0 +1,32 @@ +{% extends "base.html" %} + +{% block content %} + {{ page.content }} + {% set blog_posts = [] %} + {% for page in nav.pages %} + {% if page.url.startswith(config.extra.blog.dir) and page.meta.date is defined %} + + {{ blog_posts.append( page ) or "" }} + {% endif %} + {% endfor %} + + {% for page in (blog_posts|sort(attribute="meta.date", reverse=True))[:config.extra.blog.list_length] %} + +

+ {{ page.meta.description }} +

+ {% include "partials/blog_metadata.html" %} +
+ + {% if config.extra.blog.extended_preview %} + {{ page.content.split("", 1)[0] }} + + + {% include ".icons/octicons/arrow-right-24.svg" %} + + Continue reading +
+
+ {% endif %} + {% endfor %} +{% endblock %} diff --git a/theme-overrides/blog_post.html b/theme-overrides/blog_post.html new file mode 100644 index 0000000..2786dd9 --- /dev/null +++ b/theme-overrides/blog_post.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} + +{% block content %} +

{{ page.title }}

+

+ {{ page.meta.description }} +

+ {% include "partials/blog_metadata.html" %} +
+ {{ page.content }} +{% endblock %} diff --git a/theme-overrides/partials/blog_extended_preview.html b/theme-overrides/partials/blog_extended_preview.html new file mode 100644 index 0000000..085d23b --- /dev/null +++ b/theme-overrides/partials/blog_extended_preview.html @@ -0,0 +1,7 @@ + + + {% include ".icons/octicons/arrow-right-24.svg" %} + + Continue reading +
+
diff --git a/theme-overrides/partials/blog_metadata.html b/theme-overrides/partials/blog_metadata.html new file mode 100644 index 0000000..35dcf7f --- /dev/null +++ b/theme-overrides/partials/blog_metadata.html @@ -0,0 +1,31 @@ + diff --git a/theme-overrides/partials/blog_social.html b/theme-overrides/partials/blog_social.html new file mode 100644 index 0000000..cad4111 --- /dev/null +++ b/theme-overrides/partials/blog_social.html @@ -0,0 +1,17 @@ +{% if config.extra.social %} + {% set ns = namespace() %} + {% for social in config.extra.social %} + {% set title = social.name %} + {% if not title and "//" in social.link %} + {% set _,url = social.link.split("//") %} + {% set title = url.split("/")[0] %} + {% endif %} + {% if ns.line_break is defined %} + {{ ns.line_break }} + {% endif %} + + {% include ".icons/" ~ social.icon ~ ".svg" %} + + {% set ns.line_break = " · " %} + {% endfor %} +{% endif %} \ No newline at end of file From 9b6b3eb291e7d1179ca173a141e0010d5999dae8 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 22 Jan 2022 13:52:49 +0930 Subject: [PATCH 033/222] build: use the blogging capabilities added MR !1 #3 --- mkdocs.yml | 8 +++++++- pages/articles/2015/choose_internet_service.md | 6 +++--- pages/stylesheets/extra.css | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index f716c97..285e6f7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -91,7 +91,13 @@ extra: # nane: ReadTheDocs # icon: fontawesome/brands/readthedocs # link: https:// - + blog: + dir: articles + author: jon_nfc + author_image: https://gitlab.com/uploads/-/system/user/avatar/4125177/avatar.png + words_read_per_minute: 300 + list_length: 25 + extended_preview: true extra_css: - stylesheets/extra.css diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md index fea7b71..100264c 100644 --- a/pages/articles/2015/choose_internet_service.md +++ b/pages/articles/2015/choose_internet_service.md @@ -1,4 +1,7 @@ --- +template: blog_post.html +title: Choosing an Internet Service +date: 2015-02-25 tags: - "2015" - Feburary @@ -10,11 +13,8 @@ tags: - Internet - NBN - Australia - --- -# Choosing an Internet Service - !!! attention This post is considered an archived post. diff --git a/pages/stylesheets/extra.css b/pages/stylesheets/extra.css index e2513c6..5602326 100644 --- a/pages/stylesheets/extra.css +++ b/pages/stylesheets/extra.css @@ -52,3 +52,21 @@ a.tags:hover { .tags:visited { color: white; } + + +/* Blog Styles */ +.mdx-author { + display: flex; + font-size: 13.6px; +} +.mdx-author img { + height: 40px; + border-radius: 100%; +} +.mdx-author p:first-child { + flex-shrink: 0; + margin-right: 16px; +} +.mdx-author p > span { + display: block; +} From 61f3331db0602241b8a4b68952f38707e2b1043a Mon Sep 17 00:00:00 2001 From: Jon Date: Sat, 22 Jan 2022 04:51:05 +0000 Subject: [PATCH 034/222] feat(blog_post): include git revision date plugin MR !1 --- theme-overrides/blog_post.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/theme-overrides/blog_post.html b/theme-overrides/blog_post.html index 2786dd9..28ad7a2 100644 --- a/theme-overrides/blog_post.html +++ b/theme-overrides/blog_post.html @@ -8,4 +8,10 @@ {% include "partials/blog_metadata.html" %}
{{ page.content }} +{% if page and page.meta and ( + page.meta.git_revision_date_localized or + page.meta.revision_date +) %} + {% include "partials/source-file.html" %} +{% endif %} {% endblock %} From 5d75c663a1c8472462d53a7bf758a91914ecfbfe Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sun, 23 Jan 2022 11:24:09 +0930 Subject: [PATCH 035/222] feat(blog_list): change articles page to be a preview list of articles. MR !2 --- pages/articles/2015/choose_internet_service.md | 2 ++ pages/articles/index.md | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md index 100264c..59d1e6c 100644 --- a/pages/articles/2015/choose_internet_service.md +++ b/pages/articles/2015/choose_internet_service.md @@ -29,6 +29,8 @@ Now if I haven't lost you already and hopefully by the end of this article I hav Below I will cover a little of the technical details and hopefully bringing into perspective, so you can better understand what is being explained to you. To do this I will use the flow of water methodology. + + ## Bandwidth Bandwidth is the actual speed of your Internet connection and its unit of measure is bits per second. So basically if you think water pipe, only so much water will flow through a water pipe but if you increase it’s pressure you will receive more water. For the actual Internet connection different technology is used to essentially achieve the same diff --git a/pages/articles/index.md b/pages/articles/index.md index 2768da4..5cf228b 100644 --- a/pages/articles/index.md +++ b/pages/articles/index.md @@ -1,5 +1,8 @@ -# No Fuss Computing Articles +--- -## 2015 +template: blog_list.html +title: No Fuss Computing Articles -- [Choosing an internet service](2015/choose_internet_service.md) +--- + +Please see below for our articles. From 0e09b249dc72292b36e45449aaaf264a41e74140 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sun, 23 Jan 2022 11:44:44 +0930 Subject: [PATCH 036/222] feat(gitlab): added a default issue templete for reporting issues with the website. MR !2 task from #5 --- .gitlab/issues/website_issue.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .gitlab/issues/website_issue.md diff --git a/.gitlab/issues/website_issue.md b/.gitlab/issues/website_issue.md new file mode 100644 index 0000000..b6b3737 --- /dev/null +++ b/.gitlab/issues/website_issue.md @@ -0,0 +1,5 @@ +What is the Page URL? + +### :books: Summary + + From 95f20fee7391674730ff5bbe3e4decdfc57de350 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Tue, 25 Jan 2022 08:59:11 +0930 Subject: [PATCH 037/222] ci(gitlab-ci): updated to v0.6.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previous HEAD position was 1ef6c41 build(version): bump version 0.4.0 → 0.5.0 HEAD is now at 46cc1fb build(version): bump version 0.5.0 → 0.6.0 MR !2 --- .gitlab-ci.yml | 2 +- gitlab-ci | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bac6821..5037c9f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,7 +12,7 @@ variables: include: - project: nofusscomputing/projects/gitlab-ci - ref: 1ef6c41818c40183f8019ea5cde48b4278e4d694 + ref: 46cc1fbb6a878e485af39e679b5184a9912c2e7f file: - conventional_commits/.gitlab-ci.yml - gitlab_release/.gitlab-ci.yml diff --git a/gitlab-ci b/gitlab-ci index 1ef6c41..46cc1fb 160000 --- a/gitlab-ci +++ b/gitlab-ci @@ -1 +1 @@ -Subproject commit 1ef6c41818c40183f8019ea5cde48b4278e4d694 +Subproject commit 46cc1fbb6a878e485af39e679b5184a9912c2e7f From b79196335d8d471ebffd071cc61276e964fd2482 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Tue, 25 Jan 2022 09:05:04 +0930 Subject: [PATCH 038/222] ci(mkdocs): use gitlab-ci mkdocs job MR !2 --- .gitlab-ci.yml | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5037c9f..8bf95fa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,6 +15,7 @@ include: ref: 46cc1fbb6a878e485af39e679b5184a9912c2e7f file: - conventional_commits/.gitlab-ci.yml + - mkdocs/.gitlab-ci.yml - gitlab_release/.gitlab-ci.yml @@ -46,25 +47,9 @@ markdown lint: - "**.md" - when: never + Static Pages: - image: python:3.7.5-buster - stage: build - variables: - GIT_DEPTH: 0 - before_script: - - pip install --upgrade pip -r requirements.txt - script: -# - mkdir static -# - cp README.md pages/ - - mkdocs build --clean --strict - - rm build/sitemap* - artifacts: - paths: - - build - rules: - - if: '$CI_COMMIT_BRANCH' - when: always - - when: never + extends: .MKDocs_Build Gitlab Release: From 34ff1e34df74437edf5dbb1a05c2ed41215da056 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Tue, 25 Jan 2022 09:09:03 +0930 Subject: [PATCH 039/222] ci(gitlab-ci): use gitlab-ci markdown linting job MR !2 --- .gitlab-ci.yml | 30 +++--------------------------- .markdownlint-cli2.jsonc | 5 ----- 2 files changed, 3 insertions(+), 32 deletions(-) delete mode 100644 .markdownlint-cli2.jsonc diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8bf95fa..c8c1602 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,36 +16,12 @@ include: file: - conventional_commits/.gitlab-ci.yml - mkdocs/.gitlab-ci.yml + - validation/.gitlab-ci.yml - gitlab_release/.gitlab-ci.yml -markdown lint: - image: node:alpine3.14 - stage: validation - before_script: - - npm install markdownlint-cli2 --global - - npm install markdownlint-cli2-formatter-junit --global - - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME" - - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests" - script: - - markdownlint-cli2 "**/*.md" "!gitlab-ci" 1>&1 || EXITCODE=$? - - echo DEBUG EXITCODE[$EXITCODE] - - mv markdown.junit.xml $CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/markdown.junit.xml - artifacts: - expire_in: 3 days - when: always - paths: - - "$CI_PROJECT_DIR/artifacts/*" - reports: - junit: - - "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/*.junit.xml" - rules: - - if: '$CI_COMMIT_BRANCH == "master"' - when: never - - if: '$CI_COMMIT_BRANCH' - exists: - - "**.md" - - when: never +Lint Markdown: + extends: .Lint_Markdown Static Pages: diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc deleted file mode 100644 index 01f98e3..0000000 --- a/.markdownlint-cli2.jsonc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "outputFormatters": [ - [ "markdownlint-cli2-formatter-junit", { "name": "markdown.junit.xml" } ] - ] -} From 78c8db94664ac52e307f383b1823b2d8ff42e2ca Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Tue, 25 Jan 2022 09:38:25 +0930 Subject: [PATCH 040/222] build(gitlab-ci): upated to v0.6.1rc0 due to bug in mkdocs not working MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previous HEAD position was 46cc1fb build(version): bump version 0.5.0 → 0.6.0 HEAD is now at ce1cc01 build(version): bump version 0.6.0 → 0.6.1rc0 MR !2 --- .gitlab-ci.yml | 2 +- gitlab-ci | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c8c1602..d940f46 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,7 +12,7 @@ variables: include: - project: nofusscomputing/projects/gitlab-ci - ref: 46cc1fbb6a878e485af39e679b5184a9912c2e7f + ref: ce1cc017e26ff7f6cee586cc7d98e4d292275672 file: - conventional_commits/.gitlab-ci.yml - mkdocs/.gitlab-ci.yml diff --git a/gitlab-ci b/gitlab-ci index 46cc1fb..ce1cc01 160000 --- a/gitlab-ci +++ b/gitlab-ci @@ -1 +1 @@ -Subproject commit 46cc1fbb6a878e485af39e679b5184a9912c2e7f +Subproject commit ce1cc017e26ff7f6cee586cc7d98e4d292275672 From 85c5d475bb5575ed64131f78d11ee6239a1ee4c8 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Tue, 25 Jan 2022 09:46:49 +0930 Subject: [PATCH 041/222] build(pages): Updated the path for the mkdocs gitlab-ci job MR !2 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d940f46..1910dbf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -38,7 +38,7 @@ pages: variables: GIT_STRATEGY: none script: - - mv build public + - mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" public needs: ['Static Pages'] environment: name: staging From 98d0acf0aca74c904236bc686f72e669009a8363 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Tue, 25 Jan 2022 09:51:41 +0930 Subject: [PATCH 042/222] refactor(choose_internet_service): removed extra tags and moved archive notice to bottom of page MR !2 --- pages/articles/2015/choose_internet_service.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md index 59d1e6c..f8c47c1 100644 --- a/pages/articles/2015/choose_internet_service.md +++ b/pages/articles/2015/choose_internet_service.md @@ -3,23 +3,15 @@ template: blog_post.html title: Choosing an Internet Service date: 2015-02-25 tags: - - "2015" - - Feburary - ADSL - Archive - Article - - Binary - Broadband - Internet - NBN - Australia --- -!!! attention - This post is considered an archived post. - - This article was originally posted on 25 Feb 2015. It has been migrated from its original source _http://nofusscomputing.com/wiki/public/article/150225_choose_internet_service_ to here. - !!! info This article has been targeted towards the common mass who don’t understand the technical details and considerations for choosing an Internet package. @@ -149,3 +141,9 @@ Some ISPs in Australia: !!! warning The information contained within this article based on the opinion of the author and is provided for informational purposes only. Before utilizing any information or advice from this article you are encouraged to do your own research + + +!!! attention + This post is considered an archived post. + + This article was originally posted on 25 Feb 2015. It has been migrated from its original source _http://nofusscomputing.com/wiki/public/article/150225_choose_internet_service_ to here. From a9237c59508979f673faa565f086ce0d2782e53d Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Tue, 25 Jan 2022 11:24:39 +0930 Subject: [PATCH 043/222] fix(blog_metadata): set the date to be in a format that is normal MR !2 --- theme-overrides/partials/blog_metadata.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theme-overrides/partials/blog_metadata.html b/theme-overrides/partials/blog_metadata.html index 35dcf7f..f466bdc 100644 --- a/theme-overrides/partials/blog_metadata.html +++ b/theme-overrides/partials/blog_metadata.html @@ -16,7 +16,7 @@ {% include ".icons/octicons/calendar-24.svg" %} - {{ page.meta.date.strftime("%B %d, %Y") }} · + {{ page.meta.date.strftime("%Y-%m-%d") }} · {% include ".icons/octicons/clock-24.svg" %} From 452fbe1225d8f0d22f3976b2c90aef9217a2ecd2 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Tue, 25 Jan 2022 11:26:38 +0930 Subject: [PATCH 044/222] feat(blog_post): change location of updated date to be in the social metadata. Requires the git_revision_date_localized plugin for it to function. MR !2 --- theme-overrides/blog_post.html | 6 ------ theme-overrides/partials/blog_metadata.html | 1 + 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/theme-overrides/blog_post.html b/theme-overrides/blog_post.html index 28ad7a2..2786dd9 100644 --- a/theme-overrides/blog_post.html +++ b/theme-overrides/blog_post.html @@ -8,10 +8,4 @@ {% include "partials/blog_metadata.html" %}
{{ page.content }} -{% if page and page.meta and ( - page.meta.git_revision_date_localized or - page.meta.revision_date -) %} - {% include "partials/source-file.html" %} -{% endif %} {% endblock %} diff --git a/theme-overrides/partials/blog_metadata.html b/theme-overrides/partials/blog_metadata.html index f466bdc..1f23951 100644 --- a/theme-overrides/partials/blog_metadata.html +++ b/theme-overrides/partials/blog_metadata.html @@ -17,6 +17,7 @@ {% include ".icons/octicons/calendar-24.svg" %} {{ page.meta.date.strftime("%Y-%m-%d") }} · + {% if page.meta.git_revision_date_localized %}Updated {{ page.meta.git_revision_date_localized.replace("\n", "").replace("\r", "") }}
{% endif %} {% include ".icons/octicons/clock-24.svg" %} From d67a264ef010b3a182147d6e40407310e37fb099 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Tue, 25 Jan 2022 11:58:29 +0930 Subject: [PATCH 045/222] refactor(syntax): updated tags and added title metadata MR !2 --- pages/operations/syntax.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pages/operations/syntax.md b/pages/operations/syntax.md index a16a91e..ec78ecf 100644 --- a/pages/operations/syntax.md +++ b/pages/operations/syntax.md @@ -1,7 +1,10 @@ --- +title: Supported Markdown Syntax tags: - Development - Markdown + - Website + - mkdocs --- # Supported Markdown Syntax From 0d51c8d10ba494c123951420e1dbff059c006a84 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Thu, 27 Jan 2022 13:12:19 +0930 Subject: [PATCH 046/222] test(privacy): Created a test to check external requests during page load This test checks if the external request is within the apporved list. This test will prevent the adding of external urls within the page load. MR !2 --- test/requirements.txt | 3 ++ test/unit/conftest.py | 105 ++++++++++++++++++++++++++++++++++++++ test/unit/privacy_test.py | 38 ++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 test/requirements.txt create mode 100644 test/unit/conftest.py create mode 100644 test/unit/privacy_test.py diff --git a/test/requirements.txt b/test/requirements.txt new file mode 100644 index 0000000..c4188f7 --- /dev/null +++ b/test/requirements.txt @@ -0,0 +1,3 @@ +selenium==3.141.0 + +pytest==6.2.5 diff --git a/test/unit/conftest.py b/test/unit/conftest.py new file mode 100644 index 0000000..7f1798a --- /dev/null +++ b/test/unit/conftest.py @@ -0,0 +1,105 @@ +import hashlib +import json +import os +import re + +import pytest + +from selenium import webdriver +from selenium.webdriver.chrome.options import Options + +from selenium.webdriver.common.desired_capabilities import DesiredCapabilities + +class Data: + + def process_browser_log_entry(self, entry): + response = json.loads(entry['message'])['message'] + return response + + def __init__(self): + + caps = DesiredCapabilities.CHROME + caps['goog:loggingPrefs'] = {'performance': 'ALL'} + + + chrome_options = Options() + chrome_options.add_argument("no-sandbox") + chrome_options.add_argument("headless") + chrome_options.add_argument("start-maximized") + chrome_options.add_argument("window-size=1900,1080"); + + self.driver = webdriver.Chrome(desired_capabilities=caps, options=chrome_options) + + self.urls = [] + self.suffux_path = os.path.realpath('./build') + self.urls += [os.path.join(dp, f) for dp, dn, fn in os.walk(os.path.expanduser('./build')) for f in fn if f.endswith('.html')] + + + data = { + 'page_load_resource_links': {}, + 'source_files': [], + 'hyperlinks': {} + } + + + for check_file in self.urls: + + check_url = 'file://' + self.suffux_path + check_file.replace('./build','') + source_file = check_file.replace('./build','')[1:] + + if source_file not in data['source_files']: + data['source_files'].append(source_file) + + self.driver.get(check_url) + + events = [self.process_browser_log_entry(entry) for entry in self.driver.get_log('performance')] + + for entry in events: + + if entry['method'] == 'Network.requestWillBeSent': + + http_status = str([response['params']['response']['status'] for response in events if response['method'] == 'Network.responseReceived' and response['params']['requestId'] == entry['params']['requestId']]).replace('[', '').replace(']', '') + + url = str(entry['params']['request']['url']) + + + url_id = hashlib.md5(bytes(url, 'utf-8')).hexdigest() + + + if re.match("^http|file.*", url) is not None: + + source_file_line_number = '' + + if 'lineNumber' in entry['params']['initiator']: + + source_file_line_number = str(entry['params']['initiator']['lineNumber']) + + request_protocol = re.match("^[http|file]+s?", url).group(0) + + if re.match("^http.*", url) is not None: + + domain = re.match(r'^([a-z]+[\.|a-z|]+)',url.replace(request_protocol + '://', '')).group(0) + + request_path = url.replace(request_protocol + '://','').replace(domain, '')[1:] + + + elif re.match("^file.*", url) is not None: + + domain = 'file' + + request_path = url.replace(request_protocol + '://','')[1:] + + if url_id in data['page_load_resource_links']: + + data['page_load_resource_links'][url_id]['source_files'].append({'name': source_file, 'line_number': source_file_line_number, 'http_status': http_status}) + + else: + + data['page_load_resource_links'][url_id] = {'url': url, 'request_protocol': request_protocol, 'domain': domain, 'request_path': request_path, 'source_files': [ {'name': source_file, 'line_number': source_file_line_number, 'http_status': http_status} ]} + + self.test_data = data + + +print("\n"+'Creating test data') +print("\n\ntest data:\n" + json.dumps(Data().test_data, indent=2, default=str)) + diff --git a/test/unit/privacy_test.py b/test/unit/privacy_test.py new file mode 100644 index 0000000..4fd5997 --- /dev/null +++ b/test/unit/privacy_test.py @@ -0,0 +1,38 @@ +import pytest + +from conftest import Data + +class Test: + + data = Data() + + def setup_method(self): + + self.approved_external_requests = { + 'gitlab.com': [ + 'api/v4/projects/nofusscomputing%2Finfrastructure%2Fwebsite', + 'uploads/-/system/user/avatar/4125177/avatar.png' + ] + } + + + @pytest.mark.parametrize( + argnames='data', + argvalues=[link for url_id, link in data.test_data['page_load_resource_links'].items() if link['request_protocol'][0:4] =='http'], + ids=[url_id for url_id, link in data.test_data['page_load_resource_links'].items() if link['request_protocol'][0:4] =='http'] + ) + def test_page_external_requests(self, data): + + check_url = data['url'] + + assert data['request_protocol'] == 'https', f"Insecure Request to domain [{data['request_path']}] in source files [{data['source_files']}]" + + assert data['domain'] in self.approved_external_requests, f"A request is being made to a non-approved domain [{data['domain']}] path [{data['request_path']}] in source files [{data['source_files']}]" + + assert data['request_path'] in self.approved_external_requests[data['domain']], f"A request is being made to a non-approved path [{data['request_path']}] on domain [{data['domain']}] in source files [{data['source_files']}]" + + + + def teardown_method(self): + pass + From 7e99d55bdab2263b224aa8297e43e5b156e2bc6b Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Thu, 27 Jan 2022 13:16:03 +0930 Subject: [PATCH 047/222] ci(pytest): Added pytest job to run tests against build. This CI job runs all tests in the tests/ directory. MR !2 --- .gitignore | 10 ++++++++++ .gitlab-ci.yml | 34 +++++++++++++++++++++++++++++++++- pytest.ini | 5 +++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 pytest.ini diff --git a/.gitignore b/.gitignore index 30b80a2..093ffbf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,13 @@ # Ignore build Directory build/ aux/ + +# ignore dev env +dev_env +__pycache__ + +# ignore junit +*.junit.xml + +# ignore log files +*.log diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1910dbf..b1bfee1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,9 +1,10 @@ stages: - validation - build + - test - release - publish - + - deploy variables: GIT_SUBMODULE_STRATEGY: recursive @@ -28,6 +29,37 @@ Static Pages: extends: .MKDocs_Build +Unit Tests: + image: ubuntu:18.04 + needs: ['Static Pages'] + before_script: + - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME" + - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests" + - apt update + - apt install -y python3 python3-pip ca-certificates + - apt install --no-install-recommends -y chromium-chromedriver + - pip3 install --upgrade pip + - pip3 install -r test/requirements.txt + - mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" build + script: + - pytest --junitxml=unit_test.junit.xml --tb=line -s + - cp *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/" + - echo "[DEBUG] python_exit[$python_exit]" + artifacts: + expire_in: 24 hrs + when: always + paths: + - "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/*" + reports: + junit: + - "*.junit.xml" + + + rules: + - if: '$CI_COMMIT_BRANCH' + when: always + - when: never + Gitlab Release: extends: - .gitlab_release diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..7e3723a --- /dev/null +++ b/pytest.ini @@ -0,0 +1,5 @@ +[pytest] +#junit_suite_name=Unit Test +junit_log_passing_tests=true +#enable_assertion_pass_hook=true +junit_logging=all From 0c7c36d7e1fd46925a805ad3a98fb682614d510f Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Thu, 27 Jan 2022 13:51:50 +0930 Subject: [PATCH 048/222] feat(emoji): removed emoji support until a solution can be found to self-host. the emoji index collects from an external provider. This feature will be disabled until a solution is provided to self-host. MR !2 --- mkdocs.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 285e6f7..eb31858 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -112,10 +112,12 @@ markdown_extensions: - admonition - pymdownx.details - pymdownx.superfences - - pymdownx.emoji: - emoji_index: !!python/name:materialx.emoji.twemoji - emoji_generator: !!python/name:materialx.emoji.to_svg - +# - pymdownx.emoji: +# emoji_index: !!python/name:materialx.emoji.twemoji +# emoji_generator: !!python/name:materialx.emoji.to_svg +# options: +# custom_icons: +# - .icons nav: - Home: index.md From 65726fda02b7001c7b5315f787136a86d7549566 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Thu, 27 Jan 2022 14:04:54 +0930 Subject: [PATCH 049/222] ci(unit_test): ensure only unit test jobs run for the 'unit test' job. previous was to run all tests. no filtered to 'test/unit' MR !2 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b1bfee1..92083df 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,7 +42,7 @@ Unit Tests: - pip3 install -r test/requirements.txt - mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" build script: - - pytest --junitxml=unit_test.junit.xml --tb=line -s + - pytest --junitxml=unit_test.junit.xml --tb=line -s test/unit - cp *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/" - echo "[DEBUG] python_exit[$python_exit]" artifacts: From 94ced08565dac3b26c23e66e9f61e929a8f07ddd Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Thu, 27 Jan 2022 14:13:28 +0930 Subject: [PATCH 050/222] refactor(privacy_test): rename test 'test_page_external_requests' -> 'test_page_load_external_requests' MR !2 --- test/unit/privacy_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/privacy_test.py b/test/unit/privacy_test.py index 4fd5997..3afd083 100644 --- a/test/unit/privacy_test.py +++ b/test/unit/privacy_test.py @@ -21,7 +21,7 @@ class Test: argvalues=[link for url_id, link in data.test_data['page_load_resource_links'].items() if link['request_protocol'][0:4] =='http'], ids=[url_id for url_id, link in data.test_data['page_load_resource_links'].items() if link['request_protocol'][0:4] =='http'] ) - def test_page_external_requests(self, data): + def test_page_load_external_requests(self, data): check_url = data['url'] From 0e65f0465b47f2d58774c44e028b6d6395f7a69c Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 27 Jan 2022 05:36:47 +0000 Subject: [PATCH 051/222] feat(mkdocs): minify plugin added to pipfile for usage with build MR !2 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0556ff6..ed85c44 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -mkdocs==1.2.3 +mkdocs-minify-plugin==0.5.0 mkdocs-material-extensions==1.0.3 mkdocs-material==8.1.7 From e4999a446267c134d24bae252e363797fb188c95 Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 27 Jan 2022 05:41:07 +0000 Subject: [PATCH 052/222] feat(minify): minify the mkdocs static html build files MR !2 --- mkdocs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index eb31858..85400a3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -66,6 +66,8 @@ plugins: exclude: - index.md - tags.md + - minify + minify_html: true extra: homepage: https://nofusscomputing.com From f73011d29dbedd3617f37648c2a2fac5501a7a0d Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 27 Jan 2022 05:45:19 +0000 Subject: [PATCH 053/222] refactor(mkdocs.yml): fix tabbing of plugin MR !2 --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 85400a3..0c5a81e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -66,7 +66,7 @@ plugins: exclude: - index.md - tags.md - - minify + - minify minify_html: true extra: From 17f97f85bf773bb4b194dc80c243c235cedcff44 Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 27 Jan 2022 05:48:43 +0000 Subject: [PATCH 054/222] chore(typo): fix minify plugin. MR !2 --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 0c5a81e..4e58797 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -66,7 +66,7 @@ plugins: exclude: - index.md - tags.md - - minify + - minify: minify_html: true extra: From 8292b0a6cfdfd8812a55775809947a0f4fc9501a Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 27 Jan 2022 06:21:49 +0000 Subject: [PATCH 055/222] feat(minify): disable minifying website until site ready to deploy may need to move the minify to a task in the pages deploy job. this would allow the tests to show line numbers. MR !2 --- mkdocs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 4e58797..066fbd5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -66,8 +66,8 @@ plugins: exclude: - index.md - tags.md - - minify: - minify_html: true +# - minify: +# minify_html: true extra: homepage: https://nofusscomputing.com From 45cb62375889f8681e588fc6b7383684b946ad99 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 09:37:50 +0930 Subject: [PATCH 056/222] test(data): created a function to parse url to dict This function creates a dict of the components of a url. MR !4 --- test/unit/conftest.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/unit/conftest.py b/test/unit/conftest.py index 7f1798a..24d7232 100644 --- a/test/unit/conftest.py +++ b/test/unit/conftest.py @@ -16,6 +16,32 @@ class Data: response = json.loads(entry['message'])['message'] return response + def parse_url(self, url): + + request_protocol = re.match("^[http|file]+s?", url).group(0) + + url_id = hashlib.md5(bytes(url, 'utf-8')).hexdigest() + + if re.match("^http.*", url) is not None: + + domain = re.match(r'^([a-z]+[\.|a-z|]+)',url.replace(request_protocol + '://', '')).group(0) + + request_path = url.replace(request_protocol + '://','').replace(domain, '')[1:] + + elif re.match("^file.*", url) is not None: + + domain = 'file' + + request_path = url.replace(request_protocol + '://','')[1:] + + return { + 'url_id': url_id, + 'request_protocol': request_protocol, + 'domain': domain, + 'request_path': request_path + } + + def __init__(self): caps = DesiredCapabilities.CHROME From 7c9c3fcbf0b51878a74ddc6f10add968eb4a1c14 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 10:09:40 +0930 Subject: [PATCH 057/222] test(data): add fetching of all hyperlinks This logic fetches all of the hyperlinks on every page and presents it as a dictionary for testing. MR !4 --- test/unit/conftest.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/unit/conftest.py b/test/unit/conftest.py index 24d7232..ef06867 100644 --- a/test/unit/conftest.py +++ b/test/unit/conftest.py @@ -78,6 +78,28 @@ class Data: self.driver.get(check_url) + links = self.driver.find_elements_by_css_selector("a") + + for link in links: + + link_location = link.location + + url = link.get_attribute('href') + + link = self.parse_url(url) + + hyperlink_source_file = {'name': source_file, 'location': link_location} + + if link['url_id'] in data['hyperlinks']: + + data['hyperlinks'][link['url_id']]['source_files'].append(hyperlink_source_file) + + else: + + link['source_files'] = [ hyperlink_source_file ] + data['hyperlinks'][link['url_id']] = link + + events = [self.process_browser_log_entry(entry) for entry in self.driver.get_log('performance')] for entry in events: From e094f84b152b08a4463fa51bd274ec349c25e2a1 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 11:14:51 +0930 Subject: [PATCH 058/222] test(unit_test_data): chrome driver should not be a class object. removed the chrome driver from bing a class object as it'st only required for collecting the data. MR !4 --- test/unit/conftest.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/unit/conftest.py b/test/unit/conftest.py index ef06867..3c2c81e 100644 --- a/test/unit/conftest.py +++ b/test/unit/conftest.py @@ -54,7 +54,7 @@ class Data: chrome_options.add_argument("start-maximized") chrome_options.add_argument("window-size=1900,1080"); - self.driver = webdriver.Chrome(desired_capabilities=caps, options=chrome_options) + driver = webdriver.Chrome(desired_capabilities=caps, options=chrome_options) self.urls = [] self.suffux_path = os.path.realpath('./build') @@ -76,9 +76,9 @@ class Data: if source_file not in data['source_files']: data['source_files'].append(source_file) - self.driver.get(check_url) + driver.get(check_url) - links = self.driver.find_elements_by_css_selector("a") + links = driver.find_elements_by_css_selector("a") for link in links: @@ -100,7 +100,7 @@ class Data: data['hyperlinks'][link['url_id']] = link - events = [self.process_browser_log_entry(entry) for entry in self.driver.get_log('performance')] + events = [self.process_browser_log_entry(entry) for entry in driver.get_log('performance')] for entry in events: @@ -145,6 +145,7 @@ class Data: data['page_load_resource_links'][url_id] = {'url': url, 'request_protocol': request_protocol, 'domain': domain, 'request_path': request_path, 'source_files': [ {'name': source_file, 'line_number': source_file_line_number, 'http_status': http_status} ]} + driver.close() self.test_data = data From f77363beea5daef8e460e3f25df00e38d827062a Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 11:15:42 +0930 Subject: [PATCH 059/222] test(unit_test_data): include the url in url dict MR !4 --- test/unit/conftest.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/unit/conftest.py b/test/unit/conftest.py index 3c2c81e..c2294dc 100644 --- a/test/unit/conftest.py +++ b/test/unit/conftest.py @@ -36,6 +36,7 @@ class Data: return { 'url_id': url_id, + 'url': url, 'request_protocol': request_protocol, 'domain': domain, 'request_path': request_path From e1d3a33418046e159cc31514ef4160c61dd6b5af Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 12:04:15 +0930 Subject: [PATCH 060/222] test(unit_test_data): web driver to be class obj Set back to be a class object so that if an exception occurs the object can still be removed and cleared. MR !4 --- test/unit/conftest.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/test/unit/conftest.py b/test/unit/conftest.py index c2294dc..070b050 100644 --- a/test/unit/conftest.py +++ b/test/unit/conftest.py @@ -55,7 +55,7 @@ class Data: chrome_options.add_argument("start-maximized") chrome_options.add_argument("window-size=1900,1080"); - driver = webdriver.Chrome(desired_capabilities=caps, options=chrome_options) + self.driver = webdriver.Chrome(desired_capabilities=caps, options=chrome_options) self.urls = [] self.suffux_path = os.path.realpath('./build') @@ -77,9 +77,9 @@ class Data: if source_file not in data['source_files']: data['source_files'].append(source_file) - driver.get(check_url) + self.driver.get(check_url) - links = driver.find_elements_by_css_selector("a") + links = self.driver.find_elements_by_css_selector("a") for link in links: @@ -101,7 +101,7 @@ class Data: data['hyperlinks'][link['url_id']] = link - events = [self.process_browser_log_entry(entry) for entry in driver.get_log('performance')] + events = [self.process_browser_log_entry(entry) for entry in self.driver.get_log('performance')] for entry in events: @@ -145,11 +145,14 @@ class Data: else: data['page_load_resource_links'][url_id] = {'url': url, 'request_protocol': request_protocol, 'domain': domain, 'request_path': request_path, 'source_files': [ {'name': source_file, 'line_number': source_file_line_number, 'http_status': http_status} ]} - - driver.close() + + self.driver.quit() self.test_data = data + def __del__(self): + self.driver.quit() + print("\n"+'Creating test data') print("\n\ntest data:\n" + json.dumps(Data().test_data, indent=2, default=str)) From cfe5de7ed768c81378b8a5f573daccdd57f71cb6 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 12:05:08 +0930 Subject: [PATCH 061/222] test(privacy): clear the class data MR !4 --- test/unit/privacy_test.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/unit/privacy_test.py b/test/unit/privacy_test.py index 3afd083..39e4616 100644 --- a/test/unit/privacy_test.py +++ b/test/unit/privacy_test.py @@ -36,3 +36,6 @@ class Test: def teardown_method(self): pass + def teardown_class(self): + del self.data + From 3a2968b56a7de1d52cf87305cc58dd276e327c70 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 12:05:44 +0930 Subject: [PATCH 062/222] test(privacy): print the test data to stdout This will enable visibility within the test report. MR !4 --- test/unit/privacy_test.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/unit/privacy_test.py b/test/unit/privacy_test.py index 39e4616..986ed5b 100644 --- a/test/unit/privacy_test.py +++ b/test/unit/privacy_test.py @@ -25,6 +25,8 @@ class Test: check_url = data['url'] + print(str(data)) + assert data['request_protocol'] == 'https', f"Insecure Request to domain [{data['request_path']}] in source files [{data['source_files']}]" assert data['domain'] in self.approved_external_requests, f"A request is being made to a non-approved domain [{data['domain']}] path [{data['request_path']}] in source files [{data['source_files']}]" From 3dcca53b094d6120b3b557abc36d2c4d78f4b90b Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 12:07:06 +0930 Subject: [PATCH 063/222] test(dead_link_check): test for dead hyperlinks This test fetches all hyperlinks and ensures they are valid and alive. MR !4 --- test/unit/main_test.py | 46 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/unit/main_test.py diff --git a/test/unit/main_test.py b/test/unit/main_test.py new file mode 100644 index 0000000..6b4e747 --- /dev/null +++ b/test/unit/main_test.py @@ -0,0 +1,46 @@ +import pytest + +from conftest import Data + +class Test: + + data = Data() + + def setup_method(self): + pass + + + @pytest.mark.parametrize( + argnames='data', + argvalues=[link for url_id, link in data.test_data['hyperlinks'].items() if link['request_protocol'][0:4] =='http'], + ids=[url_id for url_id, link in data.test_data['hyperlinks'].items() if link['request_protocol'][0:4] =='http'] + ) + def test_hyperlink_alive_check(self, data): + """Test hyperlinks that are found within each page of the site. + + SSL verification has been disabled as this test only checks if the link is alive and valid. + + Args: + data (dict): A dictionary of hyperlinks constructed within conftest.py + """ + from requests import get + from requests import packages + from urllib3.exceptions import InsecureRequestWarning + + packages.urllib3.disable_warnings(category=InsecureRequestWarning) + + request = get(data['url'], verify=False) + + print(str(data) + str(request.status_code)) + + assert request.status_code == 200, ( + f"Hyperlink [{data['url_id']}] to location [{data['url']}] failed," + f"with status [{request.status_code}].") + + + def teardown_method(self): + pass + + def teardown_class(self): + del self.data + From f811a7aceffbfdea77c4ff429d0edf386023f07f Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 12:15:20 +0930 Subject: [PATCH 064/222] ci(unit_test): capture stdout in JUnit Report for debugging purposes, the test data for each test will output the parameters to stdout for inclusion in the JUnit report MR !4 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 92083df..12d2395 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,7 +42,7 @@ Unit Tests: - pip3 install -r test/requirements.txt - mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" build script: - - pytest --junitxml=unit_test.junit.xml --tb=line -s test/unit + - pytest --verbose --junitxml=unit_test.junit.xml --tb=line test/unit - cp *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/" - echo "[DEBUG] python_exit[$python_exit]" artifacts: From c4dd5b4a24a383c84bb6759e3c482b8b11784859 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 12:17:01 +0930 Subject: [PATCH 065/222] ci(unit_test): include requests in test pipfile this module is required for test 'test_hyperlink_alive_check' MR !4 fixes #7 --- test/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test/requirements.txt b/test/requirements.txt index c4188f7..9e5217b 100644 --- a/test/requirements.txt +++ b/test/requirements.txt @@ -1,3 +1,4 @@ selenium==3.141.0 pytest==6.2.5 +requests==2.27.1 \ No newline at end of file From 15cf04ff329554e66ae1e98ac48d17c663cd51bf Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 12:44:59 +0930 Subject: [PATCH 066/222] test(ssl_hyperlinks_only): Test added Added a test to ensure that all hyperlinks are to 'https' sites only. MR !4 --- test/unit/privacy_test.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/unit/privacy_test.py b/test/unit/privacy_test.py index 986ed5b..09579cc 100644 --- a/test/unit/privacy_test.py +++ b/test/unit/privacy_test.py @@ -34,6 +34,28 @@ class Test: assert data['request_path'] in self.approved_external_requests[data['domain']], f"A request is being made to a non-approved path [{data['request_path']}] on domain [{data['domain']}] in source files [{data['source_files']}]" + @pytest.mark.parametrize( + argnames='data', + argvalues=[link + for url_id, link in data.test_data['hyperlinks'].items() + if link['request_protocol'][0:4] =='http'], + ids=[url_id for url_id, link in data.test_data['hyperlinks'].items() if link['request_protocol'][0:4] =='http'] + ) + def test_ssl_hyperlinks_only(self, data): + """Ensure all hyperlinks from our site are to https ONLY + + Tests to ensure that all hyperlinks from our site are to 'https' links only. Any link that is not secure will fail this test. + + Args: + data (dict): A dictionary of hyperlinks constructed within conftest.py + """ + + print(str(data)) + + assert data['request_protocol'] == 'https', ( + f"Hyperlink [{data['url_id']}] to location [{data['url']}] is insecure" + ) + def teardown_method(self): pass From c50e9a0a6ec438aa1211215202eb66363ef22de0 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 13:04:56 +0930 Subject: [PATCH 067/222] ci(stages): deploy job to occur after build Moved so that gitlab pages deployment could be used in the tests. MR !4 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 12d2395..123de0a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,10 @@ stages: - validation - build + - deploy - test - release - publish - - deploy variables: GIT_SUBMODULE_STRATEGY: recursive From 13b829d0b54d06540ea68b801e59139bedf176ea Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 13:07:09 +0930 Subject: [PATCH 068/222] ci(tests): rijigged the job order pages to deploy to gitlab pages so it can be used in tests. added a pytest template for all tests that will use pytest. added a placeholder job for integration testing. MR !4 --- .gitlab-ci.yml | 85 ++++++++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 38 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 123de0a..559f984 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,49 +29,13 @@ Static Pages: extends: .MKDocs_Build -Unit Tests: - image: ubuntu:18.04 - needs: ['Static Pages'] - before_script: - - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME" - - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests" - - apt update - - apt install -y python3 python3-pip ca-certificates - - apt install --no-install-recommends -y chromium-chromedriver - - pip3 install --upgrade pip - - pip3 install -r test/requirements.txt - - mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" build - script: - - pytest --verbose --junitxml=unit_test.junit.xml --tb=line test/unit - - cp *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/" - - echo "[DEBUG] python_exit[$python_exit]" - artifacts: - expire_in: 24 hrs - when: always - paths: - - "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/*" - reports: - junit: - - "*.junit.xml" - - - rules: - - if: '$CI_COMMIT_BRANCH' - when: always - - when: never - -Gitlab Release: - extends: - - .gitlab_release - - pages: - stage: publish + stage: deploy variables: GIT_STRATEGY: none script: - mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" public - needs: ['Static Pages'] + needs: [ 'Static Pages' ] environment: name: staging url: $CI_PAGES_URL @@ -84,3 +48,48 @@ pages: - when: never +.Pytest_template: + stage: test + image: ubuntu:18.04 + before_script: + - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME" + - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests" + - apt update + - apt install -y python3 python3-pip ca-certificates + - apt install --no-install-recommends -y chromium-chromedriver + - pip3 install --upgrade pip + - pip3 install -r test/requirements.txt + - mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" build + artifacts: + expire_in: 24 hrs + when: always + paths: + - "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/*" + rules: + - if: '$CI_COMMIT_BRANCH' + when: always + - when: never + + +Unit Tests: + extends: .Pytest_template + needs: [ 'Static Pages' ] + script: + - pytest --verbose --junitxml=unit_test.junit.xml --tb=line test/unit + - cp *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/" + - echo "[DEBUG] python_exit[$python_exit]" + + +Integration Tests: + extends: .Pytest_template + needs: + - pages + - 'Unit Tests' + script: + - echo "placeholder job for integration tests" + +Gitlab Release: + extends: + - .gitlab_release + + From 8b041133dce19647310b24a09161338029765a28 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 13:12:31 +0930 Subject: [PATCH 069/222] ci(static_pages): dont run build if MD lint fails The Static pages job requires valid markdown for it to function correctly. Do not start the job if linting fails. MR !4 --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 559f984..b57d5bc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,6 +27,7 @@ Lint Markdown: Static Pages: extends: .MKDocs_Build + needs: [ 'Lint Markdown' ] pages: From c3f1ccc8dd31c0bce3b3f709c54b3c39c1698b3c Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 13:15:18 +0930 Subject: [PATCH 070/222] ci: ensure placeholder test runs and passes MR !4 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b57d5bc..b14099a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -87,7 +87,7 @@ Integration Tests: - pages - 'Unit Tests' script: - - echo "placeholder job for integration tests" + - echo "placeholder job for integration tests" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/DETEMEME.txt" Gitlab Release: extends: From a73362abe74f9498c200bb76ac4b744ddf762462 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 13:30:29 +0930 Subject: [PATCH 071/222] ci: command only required for unit test MR !4 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b14099a..74da02a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -60,7 +60,6 @@ pages: - apt install --no-install-recommends -y chromium-chromedriver - pip3 install --upgrade pip - pip3 install -r test/requirements.txt - - mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" build artifacts: expire_in: 24 hrs when: always @@ -76,6 +75,7 @@ Unit Tests: extends: .Pytest_template needs: [ 'Static Pages' ] script: + - mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" build - pytest --verbose --junitxml=unit_test.junit.xml --tb=line test/unit - cp *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/" - echo "[DEBUG] python_exit[$python_exit]" From 3fb954faacb10d9e8c3d63f27148e54594127ea7 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 14:49:07 +0930 Subject: [PATCH 072/222] build(requirements): added wheel for module build required for the custom plugin module MR !4 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ed85c44..1b756a5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ mkdocs-minify-plugin==0.5.0 mkdocs-material-extensions==1.0.3 - +wheel mkdocs-material==8.1.7 ./custom-plugins/mkdocs-plugin-tags mkdocs-git-revision-date-localized-plugin==0.11.1 From 40a92b975fc706fdef584d40212d5403646f012a Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 14:49:48 +0930 Subject: [PATCH 073/222] feat(vscode): added build task MR !4 --- .vscode/tasks.json | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .vscode/tasks.json diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..fe206ea --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,22 @@ +{ + "version": "2.0.0", + "command": "bash", + "showOutput": "always", + "args": [ + "-c" + ], + "tasks": [ + { + "suppressTaskName": true, + "args": [ + "cd ${workspaceFolder}; . dev_env/bin/activate; pip install -r gitlab-ci/mkdocs/requirements.txt; pip install -r requirements.txt; mkdocs build --clean --strict" + ], + "problemMatcher": [], + "label": "MKDocs Build Static Site", + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} \ No newline at end of file From 247f85c319e7456e5cb256b1e4fc15bff743424d Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 14:50:15 +0930 Subject: [PATCH 074/222] feat(vscode): added pytest settings MR !4 --- .vscode/settings.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..6e49bef --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "python.pythonPath": "dev_env/bin/python", + "python.testing.pytestArgs": [ + "--verbose", "--junit-xml=./unit_test.junit.xml", "--override-ini=pytest.ini", "--tb=line", "test" + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true +} \ No newline at end of file From b4fdcb61834a6d9d1536b2a93aefd855fbe25006 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 15:04:15 +0930 Subject: [PATCH 075/222] fix(vscode): use correct params for tests MR !4 --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 6e49bef..16227b4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { "python.pythonPath": "dev_env/bin/python", "python.testing.pytestArgs": [ - "--verbose", "--junit-xml=./unit_test.junit.xml", "--override-ini=pytest.ini", "--tb=line", "test" + "--verbose", "--junit-xml=unit_test.junit.xml", "--tb=line", "test" ], "python.testing.unittestEnabled": false, "python.testing.pytestEnabled": true From 006a36ac0cee8450ce0523add551081b87a235c2 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 15:24:38 +0930 Subject: [PATCH 076/222] feat(sitemap): git_revision_date for page change Now the last mode data is set by the 'git_revision_date_localized' plugin. adjusted the change freq to be weekly MR !4 --- theme-overrides/sitemap.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 theme-overrides/sitemap.xml diff --git a/theme-overrides/sitemap.xml b/theme-overrides/sitemap.xml new file mode 100644 index 0000000..81bc017 --- /dev/null +++ b/theme-overrides/sitemap.xml @@ -0,0 +1,12 @@ + + +{%- for file in pages -%} + {% if not file.page.is_link %} + + {% if file.page.canonical_url %}{{ file.page.canonical_url|e }}{% else %}{{ file.page.abs_url|e }}{% endif %} + {% if file.page.meta.git_revision_date_localized %}{{ file.page.meta.git_revision_date_localized.replace("\n", "").replace("\r", "").replace('', '').replace('','') }}{% endif %} + weekly + + {%- endif -%} +{% endfor %} + \ No newline at end of file From fee71df75e0f662df2687ff7e67db2057cd8d7df Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Fri, 28 Jan 2022 15:33:40 +0930 Subject: [PATCH 077/222] test: named test to refelect its function. MR !4 --- test/unit/main_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/main_test.py b/test/unit/main_test.py index 6b4e747..0badddc 100644 --- a/test/unit/main_test.py +++ b/test/unit/main_test.py @@ -15,7 +15,7 @@ class Test: argvalues=[link for url_id, link in data.test_data['hyperlinks'].items() if link['request_protocol'][0:4] =='http'], ids=[url_id for url_id, link in data.test_data['hyperlinks'].items() if link['request_protocol'][0:4] =='http'] ) - def test_hyperlink_alive_check(self, data): + def test_hyperlink_external_alive_check(self, data): """Test hyperlinks that are found within each page of the site. SSL verification has been disabled as this test only checks if the link is alive and valid. From c6f44892e7300f9e33b79a12df66bea866bfcd86 Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 28 Jan 2022 06:15:57 +0000 Subject: [PATCH 078/222] ci(pytest): fix to collect junit report MR !4 --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 74da02a..163fe37 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -65,6 +65,9 @@ pages: when: always paths: - "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/*" + reports: + junit: + - "*.junit.xml" rules: - if: '$CI_COMMIT_BRANCH' when: always From ec46764d72db8de1fc25f8cfb73f56107007932f Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 28 Jan 2022 06:26:23 +0000 Subject: [PATCH 079/222] ci(unit_test): copy report to right location MR !4 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 163fe37..49fcb23 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -80,7 +80,7 @@ Unit Tests: script: - mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" build - pytest --verbose --junitxml=unit_test.junit.xml --tb=line test/unit - - cp *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/" + - cp *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/" - echo "[DEBUG] python_exit[$python_exit]" From 88af5fedab608986855ae7f1a29ccadd7a53d0f0 Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 28 Jan 2022 06:38:06 +0000 Subject: [PATCH 080/222] ci(integration_test): disable job until developed MR !4 --- .gitlab-ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 49fcb23..b1e7443 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -84,13 +84,13 @@ Unit Tests: - echo "[DEBUG] python_exit[$python_exit]" -Integration Tests: - extends: .Pytest_template - needs: - - pages - - 'Unit Tests' +#Integration Tests: +# extends: .Pytest_template +# needs: +# - pages +# - 'Unit Tests' script: - - echo "placeholder job for integration tests" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/DETEMEME.txt" +# - echo "placeholder job for integration tests" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/DETEMEME.txt" Gitlab Release: extends: From 217f159c5c6593c33f27f6c36f0b54735fe3703b Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 28 Jan 2022 06:43:46 +0000 Subject: [PATCH 081/222] ci: amend to last commit MR !4 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b1e7443..eec1962 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -89,7 +89,7 @@ Unit Tests: # needs: # - pages # - 'Unit Tests' - script: +# script: # - echo "placeholder job for integration tests" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/DETEMEME.txt" Gitlab Release: From ddc871accabbbdafe28576265ee66755a5ffe17c Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 13:13:56 +0930 Subject: [PATCH 082/222] fix(mkdocs-plugin-tags): ensure trailing '/' added to tag hyperlink since the tag file is in path '/tags/index.html' a '/' is required to be appended to the path. MR !5 --- custom-plugins/mkdocs-plugin-tags/tags/plugin.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/custom-plugins/mkdocs-plugin-tags/tags/plugin.py b/custom-plugins/mkdocs-plugin-tags/tags/plugin.py index dd7cb29..598a6f1 100644 --- a/custom-plugins/mkdocs-plugin-tags/tags/plugin.py +++ b/custom-plugins/mkdocs-plugin-tags/tags/plugin.py @@ -54,8 +54,13 @@ class TagsPlugin(BasePlugin): for i in range(len(page_url) - 1): tags_link = tags_link + '../' + tags_link = tags_link + str(self.filename).strip('.md') + + if tags_link[-1] != '/': + tags_link = tags_link + '/' + if 'tags' in page.meta: - swap_mark = [f"[{x}]({tags_link}{str(self.filename).strip('.md')}#{x.lower()}){{{self.css_name}}}" + swap_mark = [f"[{x}]({tags_link}#{x.lower()}){{{self.css_name}}}" for x in page.meta['tags']] swap_mark.append('\n') return f'{" ".join(swap_mark)}{markdown}' From 7bd7abd0e40e56ccb2321a21dd974e8a5ef3de61 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 13:16:38 +0930 Subject: [PATCH 083/222] feat(theme): removed post content from 'blog_list' This had to be removed as the tag plugin builds a relative link to the tags.html page. the blog list is generated by copying the page content of the article. due to this the tag hyperlinks were wrong. so disabled. MR !5 --- theme-overrides/blog_list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theme-overrides/blog_list.html b/theme-overrides/blog_list.html index 8129901..5555c48 100644 --- a/theme-overrides/blog_list.html +++ b/theme-overrides/blog_list.html @@ -19,7 +19,7 @@
{% if config.extra.blog.extended_preview %} - {{ page.content.split("", 1)[0] }} + {% include ".icons/octicons/arrow-right-24.svg" %} From 3dd7b452a4598dc0cf07f9f0ed68550d9ed911c8 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 13:18:43 +0930 Subject: [PATCH 084/222] test(test_hyperlink_internal_alive_check): added test This test checks all internal (to the site) links to ensure they are valid and the page exists. MR !5 --- test/unit/main_test.py | 58 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/test/unit/main_test.py b/test/unit/main_test.py index 0badddc..22fb832 100644 --- a/test/unit/main_test.py +++ b/test/unit/main_test.py @@ -1,4 +1,5 @@ import pytest +import os from conftest import Data @@ -6,6 +7,11 @@ class Test: data = Data() + def setup_class(self): + #copy data so it can be used + self.source_files = self.data.test_data['source_files'] + + def setup_method(self): pass @@ -37,7 +43,57 @@ class Test: f"Hyperlink [{data['url_id']}] to location [{data['url']}] failed," f"with status [{request.status_code}].") - + + @pytest.mark.parametrize( + argnames='data', + argvalues=[link for url_id, link in data.test_data['hyperlinks'].items() if link['request_protocol'][0:4] =='file' and link['request_path'] != ''], + ids=[url_id for url_id, link in data.test_data['hyperlinks'].items() if link['request_protocol'][0:4] =='file' and link['request_path'] != ''] + ) + def test_hyperlink_internal_alive_check(self, data): + """ Test all internal hyperlinks are valid and the page exists. + + This test constructs the actual file path from a found internal (contains file as the protocol) link. After the link is found it is checked against the pages that exist. + + Args: + data (list): list of dictionaries containing the urls to test + """ + + path_suffix = os.path.realpath('./build') + + print('URL Data:' + str(data)) + + request_path = str(data['request_path']) + + if '#' in request_path: + request_path_split = request_path.split('#') + request_path = str(request_path_split[0]) + print('Debug # in path ' + request_path_split[0]) + + # Reconstruct a valid url. append 'index.html' for paths ending in '/' + if (request_path[len(request_path)-1:] == '/' + and request_path[len(request_path)-5:] != '.html' + ): + + request_path = str(request_path) + 'index.html' + + elif (request_path[len(request_path)-1:] != '/' + and request_path[len(request_path)-5:] == '.html' + ): + + request_path = request_path + + request_path = request_path.replace('/' + path_suffix[1:] + '/','') + request_path = request_path.replace(path_suffix[1:] + '/','') + + print('DEBUG consructed path:' + request_path) + + assert request_path in self.source_files, ( + f"hyperlink [{str(data['request_path'])}] that was reconstructed to[{request_path}] " + "does not exist. This link was found " + f"within the following pages [{str(data['source_files'])}]" + ) + + def teardown_method(self): pass From 88b80c412d30d7a01bcc54498c8f700208383907 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 14:04:05 +0930 Subject: [PATCH 085/222] test: build URLs dont require the build path in the name MR !5 --- test/unit/conftest.py | 2 ++ test/unit/main_test.py | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/test/unit/conftest.py b/test/unit/conftest.py index 070b050..d4f42e2 100644 --- a/test/unit/conftest.py +++ b/test/unit/conftest.py @@ -34,6 +34,8 @@ class Data: request_path = url.replace(request_protocol + '://','')[1:] + request_path = request_path.replace(self.suffux_path[1:], '') + return { 'url_id': url_id, 'url': url, diff --git a/test/unit/main_test.py b/test/unit/main_test.py index 22fb832..dbf6348 100644 --- a/test/unit/main_test.py +++ b/test/unit/main_test.py @@ -64,6 +64,12 @@ class Test: request_path = str(data['request_path']) + if request_path[0:1] == '/': + if request_path[0:1] == request_path: + request_path = 'index.html' + else: + request_path = request_path[1:] + if '#' in request_path: request_path_split = request_path.split('#') request_path = str(request_path_split[0]) @@ -82,9 +88,6 @@ class Test: request_path = request_path - request_path = request_path.replace('/' + path_suffix[1:] + '/','') - request_path = request_path.replace(path_suffix[1:] + '/','') - print('DEBUG consructed path:' + request_path) assert request_path in self.source_files, ( From 08bdf09d30d7f8bbd1f6728d46835d0401f490c0 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 14:16:31 +0930 Subject: [PATCH 086/222] feat(blog_post): remove meta.description from page the meta.description is not required on the article. MR !5 --- theme-overrides/blog_post.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/theme-overrides/blog_post.html b/theme-overrides/blog_post.html index 2786dd9..387d8c5 100644 --- a/theme-overrides/blog_post.html +++ b/theme-overrides/blog_post.html @@ -2,9 +2,6 @@ {% block content %}

{{ page.title }}

-

- {{ page.meta.description }} -

{% include "partials/blog_metadata.html" %}
{{ page.content }} From 286caa1696692216a09d4fe9dbfc3d4126c7dfd7 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 14:19:43 +0930 Subject: [PATCH 087/222] feat(blog_list): layout not to include post content removed the page.content from the list as the tags are included with the wrong relative path to the tags page. Now the meta.description will be shown in lieu of half the page.content. MR !5 --- theme-overrides/blog_list.html | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/theme-overrides/blog_list.html b/theme-overrides/blog_list.html index 5555c48..0951f43 100644 --- a/theme-overrides/blog_list.html +++ b/theme-overrides/blog_list.html @@ -12,14 +12,13 @@ {% for page in (blog_posts|sort(attribute="meta.date", reverse=True))[:config.extra.blog.list_length] %}

{{ page.title }}

-

- {{ page.meta.description }} -

- {% include "partials/blog_metadata.html" %}
+ {% include "partials/blog_metadata.html" %} +

+ {{ page.meta.description }} +

{% if config.extra.blog.extended_preview %} - {% include ".icons/octicons/arrow-right-24.svg" %} From 2e534c5dd01b046f8fb520b9a2c607d432d2c309 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 14:20:28 +0930 Subject: [PATCH 088/222] refactor(article): include meta.description MR !5 --- pages/articles/2015/choose_internet_service.md | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md index f8c47c1..44c06a9 100644 --- a/pages/articles/2015/choose_internet_service.md +++ b/pages/articles/2015/choose_internet_service.md @@ -1,6 +1,7 @@ --- template: blog_post.html title: Choosing an Internet Service +description: The Internet has now become a mainstream item within the average Australian home. The Internet has become so ingrained within our daily lives that for those of us that were around when the Internet was born have actually forgotten what life was like without it. I remember when I was growing up that if we wanted to learn about something you would go to the local library or to a family/friends house to look through their Encyclopaedia Britannica which more often than not was at least five years out of date. Believe it or not that was only 15 to 20 years ago. Now if I haven't lost you already and hopefully by the end of this article I have been able to provide you with more insight on being able to choose an Internet service from an ISP with a little more of an understanding of the technology behind that Internet connection. date: 2015-02-25 tags: - ADSL From cc7a411613c02649fac2e5519079a1cc1b109677 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 14:36:58 +0930 Subject: [PATCH 089/222] feat(vscode)!: fix junit path to use workspace folder MR !5 --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 16227b4..6947534 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { "python.pythonPath": "dev_env/bin/python", "python.testing.pytestArgs": [ - "--verbose", "--junit-xml=unit_test.junit.xml", "--tb=line", "test" + "--verbose", "--junit-xml=${workspaceFolder}/unit_test.junit.xml", "--tb=line", "test" ], "python.testing.unittestEnabled": false, "python.testing.pytestEnabled": true From c9f9d0b5040016d983ec972b28592687e8701a09 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 15:02:02 +0930 Subject: [PATCH 090/222] build(gitlab_release): add cz config file for verion bumping. MR !5 --- .cz.yaml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .cz.yaml diff --git a/.cz.yaml b/.cz.yaml new file mode 100644 index 0000000..86076e5 --- /dev/null +++ b/.cz.yaml @@ -0,0 +1,7 @@ +commitizen: + bump_message: "build(version): bump version $current_version \u2192 $new_version" + changelog_incremental: false + name: cz_conventional_commits + tag_format: v$major.$minor.$patch$prerelease + update_changelog_on_bump: true + version: 1.0.0rc0 From ce3a2c2e1e434d4910979fee482d071cc050c2b4 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sat, 29 Jan 2022 15:15:01 +0930 Subject: [PATCH 091/222] feat(merge_requests): added article MR template MR !5 --- .gitlab/merge_requests/new_article.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .gitlab/merge_requests/new_article.md diff --git a/.gitlab/merge_requests/new_article.md b/.gitlab/merge_requests/new_article.md new file mode 100644 index 0000000..130bcb7 --- /dev/null +++ b/.gitlab/merge_requests/new_article.md @@ -0,0 +1,17 @@ +### :memo: Summary + + +### :link: Links / References + +- LinksOrReferencesListed + +#### :construction_worker: Tasks + +- Required Metadata + + - [ ] meta.title + + - [ ] meta.description + + +/target_branch development From a6bcfa6b3f877489891905adb120f3fa4228e7fd Mon Sep 17 00:00:00 2001 From: Jon Date: Sat, 29 Jan 2022 06:24:55 +0000 Subject: [PATCH 092/222] refactor: update article requirements MR !5 --- .gitlab/merge_requests/new_article.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.gitlab/merge_requests/new_article.md b/.gitlab/merge_requests/new_article.md index 130bcb7..c7bfc86 100644 --- a/.gitlab/merge_requests/new_article.md +++ b/.gitlab/merge_requests/new_article.md @@ -13,5 +13,15 @@ - [ ] meta.description + - [ ] meta.date _format YYYY-MM-DD_ + + - [ ] meta.tags + + ``` yaml + tags: + - tagname1 + - tagname2 + + ``` /target_branch development From c6b4f01102a3bbb4db09212654a66a1e46190fa7 Mon Sep 17 00:00:00 2001 From: NFC CI Date: Sat, 29 Jan 2022 06:36:04 +0000 Subject: [PATCH 093/222] =?UTF-8?q?build(version):=20bump=20version=201.0.?= =?UTF-8?q?0rc0=20=E2=86=92=201.0.0rc1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cz.yaml | 2 +- CHANGELOG.md | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/.cz.yaml b/.cz.yaml index 86076e5..e28ffc7 100644 --- a/.cz.yaml +++ b/.cz.yaml @@ -4,4 +4,4 @@ commitizen: name: cz_conventional_commits tag_format: v$major.$minor.$patch$prerelease update_changelog_on_bump: true - version: 1.0.0rc0 + version: 1.0.0rc1 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..18c8077 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,86 @@ +## v1.0.0rc1 (2022-01-29) + +### Bug Fixes + +- **mkdocs-plugin-tags**: [ddc871ac](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/ddc871accabbbdafe28576265ee66755a5ffe17c) - ensure trailing '/' added to tag hyperlink [ [!5](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/5) ] +- **vscode**: [b4fdcb61](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/b4fdcb61834a6d9d1536b2a93aefd855fbe25006) - use correct params for tests [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) ] +- **blog_metadata**: [a9237c59](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/a9237c59508979f673faa565f086ce0d2782e53d) - set the date to be in a format that is normal [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **mkdocs-plugin-tags**: [54b75f38](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/54b75f38b432050836f1f0f41eb6a9f9235ca88d) - fix markdown generation so it passes linting [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **mkdocs-plugin-tags**: [10a81f0b](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/10a81f0bed073ef865e8c98013ae186d7c70a467) - ensure heading reference in a url is in lower case. [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **mkdocs-plugin-tags**: [653c535b](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/653c535b2cfae1a54e45f27fd5c23950ddbe64ed) - the template not using the specified css class for the tag [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **mkdocs-plugin-tags**: [7267f8f2](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/7267f8f2ad287fafcbae0fc88f3ceb7dadd19035) - Build a relative link for the url to the tag page [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) ] + +### Code Refactor + +- [a6bcfa6b](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/a6bcfa6b3f877489891905adb120f3fa4228e7fd) - update article requirements +- **article**: [2e534c5d](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/2e534c5dd01b046f8fb520b9a2c607d432d2c309) - include meta.description [ [!5](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/5) ] +- **mkdocs.yml**: [f73011d2](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/f73011d29dbedd3617f37648c2a2fac5501a7a0d) - fix tabbing of plugin +- **privacy_test**: [94ced085](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/94ced08565dac3b26c23e66e9f61e929a8f07ddd) - rename test 'test_page_external_requests' -> 'test_page_load_external_requests' [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **syntax**: [d67a264e](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/d67a264ef010b3a182147d6e40407310e37fb099) - updated tags and added title metadata [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **choose_internet_service**: [98d0acf0](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/98d0acf0aca74c904236bc686f72e669009a8363) - removed extra tags and moved archive notice to bottom of page [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- [72ed1cb4](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/72ed1cb4408fcddf202e819cf73c3ce9d9cb2169) - change hover for content tags to yellow text. [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **navigation**: [93ceceb3](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/93ceceb3965f93ae4b0d0d3ffa86c0002927ee4b) - rename tags -> 'Content Tags' [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **markdown_lint**: [f2969de7](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/f2969de739230bc8c5d44c15a65c61bfdfc74027) - correct linting errors [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **mkdocs-plugin-tags**: [5dfeeb81](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/5dfeeb81b10a7e86c30b90dc360a06c3ad429adf) - rebranded plugin to be from nfc [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) ] +- [2a16ca06](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/2a16ca065c08759b31ee24f53d1e0ac67a406a9d) - md linting error, ul must be indent four spaces +- [449ec4a9](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/449ec4a9fc5d8421eea4cb79477d2124fc0a308c) - linting error. removed trailing empty line in choosing an internet service. [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **article**: [c2d3a178](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/c2d3a178a5ab335bd769a19e9a88839f17021bca) - fixing lists in choosing an internet service [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **markdown_lint**: [3a08f14d](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/3a08f14d74899d2f2200503db3ca1bd96ffa859f) - clean up linting errors. [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] + +### Continious Integration + +- [217f159c](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/217f159c5c6593c33f27f6c36f0b54735fe3703b) - amend to last commit +- **integration_test**: [88af5fed](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/88af5fedab608986855ae7f1a29ccadd7a53d0f0) - disable job until developed +- **unit_test**: [ec46764d](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/ec46764d72db8de1fc25f8cfb73f56107007932f) - copy report to right location +- **pytest**: [c6f44892](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/c6f44892e7300f9e33b79a12df66bea866bfcd86) - fix to collect junit report +- [a73362ab](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/a73362abe74f9498c200bb76ac4b744ddf762462) - command only required for unit test [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) ] +- [c3f1ccc8](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/c3f1ccc8dd31c0bce3b3f709c54b3c39c1698b3c) - ensure placeholder test runs and passes [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) ] +- **static_pages**: [8b041133](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/8b041133dce19647310b24a09161338029765a28) - dont run build if MD lint fails [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) ] +- **tests**: [13b829d0](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/13b829d0b54d06540ea68b801e59139bedf176ea) - rijigged the job order [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) ] +- **stages**: [c50e9a0a](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/c50e9a0a6ec438aa1211215202eb66363ef22de0) - deploy job to occur after build [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) ] +- **unit_test**: [c4dd5b4a](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/c4dd5b4a24a383c84bb6759e3c482b8b11784859) - include requests in test pipfile [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) [#7](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/7) ] +- **unit_test**: [f811a7ac](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/f811a7aceffbfdea77c4ff429d0edf386023f07f) - capture stdout in JUnit Report [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) ] +- **unit_test**: [65726fda](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/65726fda02b7001c7b5315f787136a86d7549566) - ensure only unit test jobs run for the 'unit test' job. [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **pytest**: [7e99d55b](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/7e99d55bdab2263b224aa8297e43e5b156e2bc6b) - Added pytest job to run tests against build. [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **gitlab-ci**: [34ff1e34](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/34ff1e34df74437edf5dbb1a05c2ed41215da056) - use gitlab-ci markdown linting job [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **mkdocs**: [b7919633](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/b79196335d8d471ebffd071cc61276e964fd2482) - use gitlab-ci mkdocs job [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **gitlab-ci**: [95f20fee](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/95f20fee7391674730ff5bbe3e4decdfc57de350) - updated to v0.6.0 [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **markdown_lint**: [b0c91fa6](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/b0c91fa68bda0fac2c4492a6fb227d0970a8f1d0) - set unordered list indentation to four. +- **markdown_lint**: [893d3dfd](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/893d3dfd5c393131f69fddd7d5e80d3f025b48bb) - disable line length for markdown files [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **pages**: [a02d2c3b](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/a02d2c3bb5fd0e933b42edce96b624ea355dcb69) - ensure the static site artifacts are available for gitlab pages [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **build**: [696138c3](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/696138c317e0f898188b1ba9f0a3e287933f5249) - Added config to build and publish to gitlab pages [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] + +### Features + +- **merge_requests**: [ce3a2c2e](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/ce3a2c2e1e434d4910979fee482d071cc050c2b4) - added article MR template [ [!5](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/5) ] +- **vscode**: [cc7a4116](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/cc7a411613c02649fac2e5519079a1cc1b109677) - fix junit path to use workspace folder [ [!5](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/5) ] +- **blog_list**: [286caa16](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/286caa1696692216a09d4fe9dbfc3d4126c7dfd7) - layout not to include post content [ [!5](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/5) ] +- **blog_post**: [08bdf09d](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/08bdf09d30d7f8bbd1f6728d46835d0401f490c0) - remove meta.description from page [ [!5](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/5) ] +- **theme**: [7bd7abd0](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/7bd7abd0e40e56ccb2321a21dd974e8a5ef3de61) - removed post content from 'blog_list' [ [!5](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/5) ] +- **sitemap**: [006a36ac](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/006a36ac0cee8450ce0523add551081b87a235c2) - git_revision_date for page change [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) ] +- **vscode**: [247f85c3](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/247f85c319e7456e5cb256b1e4fc15bff743424d) - added pytest settings [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) ] +- **vscode**: [40a92b97](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/40a92b975fc706fdef584d40212d5403646f012a) - added build task [ [!4](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/4) ] +- **minify**: [8292b0a6](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/8292b0a6cfdfd8812a55775809947a0f4fc9501a) - disable minifying website until site ready to deploy [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **minify**: [e4999a44](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/e4999a446267c134d24bae252e363797fb188c95) - minify the mkdocs static html build files +- **mkdocs**: [0e65f046](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/0e65f0465b47f2d58774c44e028b6d6395f7a69c) - minify plugin added to pipfile for usage with build +- **emoji**: [0c7c36d7](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/0c7c36d7e1fd46925a805ad3a98fb682614d510f) - removed emoji support until a solution can be found to self-host. [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **blog_post**: [452fbe12](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/452fbe1225d8f0d22f3976b2c90aef9217a2ecd2) - change location of updated date to be in the social metadata. [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **gitlab**: [0e09b249](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/0e09b249dc72292b36e45449aaaf264a41e74140) - added a default issue templete for reporting issues with the website. [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) [#5](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/5) ] +- **blog_list**: [5d75c663](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/5d75c663a1c8472462d53a7bf758a91914ecfbfe) - change articles page to be a preview list of articles. [ [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ] +- **blog_post**: [61f3331d](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/61f3331db0602241b8a4b68952f38707e2b1043a) - include git revision date plugin +- **blog**: [9d9f9c73](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/9d9f9c73c8261cb6a4529acb7c59f4085fd2df27) - added blog capability to posts [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **markdownlint**: [d6524ac9](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/d6524ac9cf2e305218ec5d3862b85d12b341ba48) - specifiy the allowed inline html elements [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **mkdocs**: [1a1b7776](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/1a1b77769d7f924fc018fb303e6f656826c578a1) - use custom plugin from custom-plugins/mkdocs-plugin-tags [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **plugin**: [f77b36a1](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/f77b36a138809b50389dce016557497fbaaf5adb) - cloned plugin tags repo so it can be customized and used [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) ] +- **mkdocs**: [830371c6](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/830371c691e283418e373da881f13727ef63ec17) - add lists and task lists to markdown [ [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **sitemap**: [59c2593c](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/59c2593c68fbc3f5b5d9e553e328586ce0811859) - remove sitemap as the changed dates for files is wrong. [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **operations**: [c6de8bc9](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/c6de8bc9600a9c740660b8523f2efdd33a879b9e) - Added markdown syntax page. [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **article**: [6667f4f0](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/6667f4f0761dcba22a1825c9514963931618140e) - migrated choosing an internet service from old wiki [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **contact**: [268e076e](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/268e076e9a04fb071490f4d532aa3cdb53c4ee06) - updated the page content to include how to fix an issue with a page. [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **markdown**: [47bfd4e5](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/47bfd4e5cc9c19da8c82e37eb7513f1b75d68f45) - added ability to colour by brand name. [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **markdown**: [f6d6bd62](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/f6d6bd627b755cafe9e45f9edd17f7436a323b4a) - Support admonations in markdown. [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **footer**: [c0aa5cbe](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/c0aa5cbe12f92cea496a902f68ce4f7114f36d1a) - Add colour to the social icons within the page footer [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **mkdocs**: [2460b4c7](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/2460b4c70cf3a7ccf11da60c8b356fad2fad352d) - add document creation and last edited date. [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] +- **mkdocs**: [8fbb9d95](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/8fbb9d95ac452b550c65cff32a88f7b6c23437d3) - Add the default config and the site layout directory [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!1](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/1) ] + +## v1.0.0rc0 (2022-01-29) From 59999e09e37450faee13387f0cc1154d8a9ee1c5 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sun, 30 Jan 2022 07:51:54 +0930 Subject: [PATCH 094/222] refactor(gitlab_templates): changed to use correct path MR !6 --- .gitlab/{issues => issue_templates}/website_issue.md | 0 .../{merge_requests => merge_request_templates}/new_article.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .gitlab/{issues => issue_templates}/website_issue.md (100%) rename .gitlab/{merge_requests => merge_request_templates}/new_article.md (100%) diff --git a/.gitlab/issues/website_issue.md b/.gitlab/issue_templates/website_issue.md similarity index 100% rename from .gitlab/issues/website_issue.md rename to .gitlab/issue_templates/website_issue.md diff --git a/.gitlab/merge_requests/new_article.md b/.gitlab/merge_request_templates/new_article.md similarity index 100% rename from .gitlab/merge_requests/new_article.md rename to .gitlab/merge_request_templates/new_article.md From 1a6fc5a814c7dc1ceb8a13c5db806a23db53073d Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sun, 30 Jan 2022 11:48:31 +0930 Subject: [PATCH 095/222] feat(home_page): add metadata MR !6 --- pages/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pages/index.md b/pages/index.md index e409579..ebe6d54 100644 --- a/pages/index.md +++ b/pages/index.md @@ -1,4 +1,7 @@ --- +title: No Fuss Computing +description: Here at No Fuss Computing we predominately do research and development into, making your computing experience a more enjoyable one. See our projects page to find out what we are working on. + hide: - navigation - toc From f14b17c3b00dde626083bcb4c5bb84ab599fdff5 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sun, 30 Jan 2022 11:50:07 +0930 Subject: [PATCH 096/222] feat(home_page): created template for homepage This template created two column layout with articles and handy links. Capability was added so that on a mobile device, the columns would drop to one only. MR !6 --- pages/index.md | 1 + pages/stylesheets/extra.css | 47 ++++++++++++++++++++++++++++ theme-overrides/home.html | 62 +++++++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 theme-overrides/home.html diff --git a/pages/index.md b/pages/index.md index ebe6d54..0529735 100644 --- a/pages/index.md +++ b/pages/index.md @@ -1,4 +1,5 @@ --- +template: home.html title: No Fuss Computing description: Here at No Fuss Computing we predominately do research and development into, making your computing experience a more enjoyable one. See our projects page to find out what we are working on. diff --git a/pages/stylesheets/extra.css b/pages/stylesheets/extra.css index 5602326..5c0ce40 100644 --- a/pages/stylesheets/extra.css +++ b/pages/stylesheets/extra.css @@ -70,3 +70,50 @@ a.tags:hover { .mdx-author p > span { display: block; } + + +.container{ + width: 100%; +} +.container .row { + width: 95%; + margin: 0 auto; + height: fit-content; +} + +.container .row:after { + content: ""; + display: table; + clear: both; +} +.container .column { + float: left; + width: 50%; + +} + +.container .column .mdx-author { + padding-left: 30px; +} + +.container .column h2 { + margin: 0px; +} + +.container .column ul { + margin: 0px; +} + +.container .column h3 { + margin: 0px; +} + +.container .column img { + height: 22px; +} +@media screen and ( max-width: 700px ) { + .container .column { + float: none; + width: 100%; + } +} diff --git a/theme-overrides/home.html b/theme-overrides/home.html new file mode 100644 index 0000000..801eac9 --- /dev/null +++ b/theme-overrides/home.html @@ -0,0 +1,62 @@ +{% extends "base.html" %} + +{% block content %} +
+ {{ page.content }} + {% set blog_posts = [] %} + {% for page in nav.pages %} + {% if page.url.startswith(config.extra.blog.dir) and page.meta.date is defined %} + + {{ blog_posts.append( page ) or "" }} + {% endif %} + {% endfor %} + +
+
+
+ +
    + {% for page in (blog_posts|sort(attribute="meta.date", reverse=True))[:config.extra.blog.list_length] %} +
  • +

    +

    + +

    +
  • + {% endfor %} +
+
+
+

Quick Links

+ +
+
+
+ +
+{% endblock %} From d0719e356d4e56db8d2b4c6191484326c9701a03 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sun, 30 Jan 2022 11:52:10 +0930 Subject: [PATCH 097/222] fix(article): add required metadata. MR !6 --- pages/articles/2015/choose_internet_service.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md index 44c06a9..6ea3f38 100644 --- a/pages/articles/2015/choose_internet_service.md +++ b/pages/articles/2015/choose_internet_service.md @@ -1,8 +1,10 @@ --- -template: blog_post.html title: Choosing an Internet Service description: The Internet has now become a mainstream item within the average Australian home. The Internet has become so ingrained within our daily lives that for those of us that were around when the Internet was born have actually forgotten what life was like without it. I remember when I was growing up that if we wanted to learn about something you would go to the local library or to a family/friends house to look through their Encyclopaedia Britannica which more often than not was at least five years out of date. Believe it or not that was only 15 to 20 years ago. Now if I haven't lost you already and hopefully by the end of this article I have been able to provide you with more insight on being able to choose an Internet service from an ISP with a little more of an understanding of the technology behind that Internet connection. date: 2015-02-25 +template: blog_post.html +type: blog +author: jon tags: - ADSL - Archive From 466f6e8632c8392cae26f4ba0871c5fff4f2f0d6 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Sun, 30 Jan 2022 12:22:07 +0930 Subject: [PATCH 098/222] feat(article): migrate mdt setup article MR !6 --- mkdocs.yml | 4 + .../articles/2014/images}/mdtapplications.png | Bin .../articles/2014/images}/mdtapptree.png | Bin .../articles/2014/images}/mdtstructure.png | Bin pages/articles/2014/mdt_setup.md | 102 ++++++++++++++++++ pages/robots.txt | 4 +- wiki/current/info/mdt/applications.txt | 47 -------- wiki/current/info/mdt/home.txt | 27 ----- .../images/media/public/help/mdtstructure.png | Bin 12868 -> 0 bytes 9 files changed, 108 insertions(+), 76 deletions(-) rename {wiki/dokuwiki/images/media/public/help/mdt => pages/articles/2014/images}/mdtapplications.png (100%) rename {wiki/dokuwiki/images/media/public/help/mdt => pages/articles/2014/images}/mdtapptree.png (100%) rename {wiki/dokuwiki/images/media/public/help/mdt => pages/articles/2014/images}/mdtstructure.png (100%) create mode 100644 pages/articles/2014/mdt_setup.md delete mode 100755 wiki/current/info/mdt/applications.txt delete mode 100755 wiki/current/info/mdt/home.txt delete mode 100755 wiki/dokuwiki/images/media/public/help/mdtstructure.png diff --git a/mkdocs.yml b/mkdocs.yml index 066fbd5..35bc826 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -131,6 +131,10 @@ nav: - articles/2015/choose_internet_service.md + - 2014: + + - articles/2014/mdt_setup.md + - Content Tags: tags.md - Projects: diff --git a/wiki/dokuwiki/images/media/public/help/mdt/mdtapplications.png b/pages/articles/2014/images/mdtapplications.png similarity index 100% rename from wiki/dokuwiki/images/media/public/help/mdt/mdtapplications.png rename to pages/articles/2014/images/mdtapplications.png diff --git a/wiki/dokuwiki/images/media/public/help/mdt/mdtapptree.png b/pages/articles/2014/images/mdtapptree.png similarity index 100% rename from wiki/dokuwiki/images/media/public/help/mdt/mdtapptree.png rename to pages/articles/2014/images/mdtapptree.png diff --git a/wiki/dokuwiki/images/media/public/help/mdt/mdtstructure.png b/pages/articles/2014/images/mdtstructure.png similarity index 100% rename from wiki/dokuwiki/images/media/public/help/mdt/mdtstructure.png rename to pages/articles/2014/images/mdtstructure.png diff --git a/pages/articles/2014/mdt_setup.md b/pages/articles/2014/mdt_setup.md new file mode 100644 index 0000000..6a7d19c --- /dev/null +++ b/pages/articles/2014/mdt_setup.md @@ -0,0 +1,102 @@ +--- +title: How I use Microsoft Deployment Toolkit +description: This article is a record of how I setup my Microsoft Deployment Toolkit. There are many ways to set it up. However this is how I do it. +date: 2014-09-01 +template: blog_post.html +type: blog +author: jon +about: https://en.wikipedia.org/wiki/Microsoft_Deployment_Toolkit +tags: + - Administration + - Microsoft + - Microsoft Deployment Toolkit + - Windows +--- + +!!! info + This information has been created as a record of how I do something, if you decide to follow anything within this set of pages and stuff up, you're on your own!! + +I use Microsoft Deployment Tool Kit (MDT) to reduce the time it takes to install/update and to deploy a working Windows OS. The setup of MDT and time taken to test and get it right far outweighs deploying an OS by hand. Below you will find how I have setup my MDT structure and why. Most of my setup has been chopped and changed due to trial and error and to ease the burden. + +My goals for MDT are: + +- Deploy any Windows OS quickly +- Easily update Applications / Drivers / Operating System +- make deployment media that could be used by a less savvy computer user. + +I currently use MDT to Deploy windows on my own network (Active Directory Domain), Stand alone machines and family and friends computers. I also use MDT to install applications and force a computer to update using my WSUS Server. + + +## Folder Layout + +![MDT Folder Structure](images/mdtstructure.png) + + +## Applications + +I not only use MDT to deploy applications during OS deployment but I also have a 'Post OS Install' task sequence to install applications as well. + +Application folders Layout is pretty straight forward. + +- Client Software Suite - Standard Suite + + All Freeware applications that I install is under this structure + +- Client Software Suite - Domain + + Local Domain only Applications + +- Server Software Suite - Domain + + Software for use on domain Servers + +Each suite folder is setup as follows. + +| Folder | Description | +|:----|:----| +| Suite | Applications listed here are only Application Bundles. The dependent applications for these Application bundles are selected from the AppTree folder. They are visible from the deployment wizard. | +| Suite\AppTree | Applications here are 'Applications with Source files' these applications are contain the acutual installers for the application in question. They are not visible from the deployment wizard. | +| Suite\Archive | Applications here are old versions, they are visible from the deployment wizard. | + +![MDT Folder Structure](images/mdtapptree.png) +**Figure 1. AppTree Folder Structure** This is where new applications are imported to they are imported as an application with source files. + + +![MDT Folder Structure](images/mdtapplications.png) +**Figure 2. Suite Application bundles** These applications are application bundles with the application under the app tree folder added as a dependency. + + +### Add New Application +To add a new application the following process is followed. + +- Import an application with source files into the AppTree Folder ensuring you hide it from the deployment wizard. + +- Create an application Bundle under the Suite root folder and set its dependency to the application you wish to install, from the AppTree folder. + +- if the application you wish to install has dependent applications, select the dependent application bundle from the suite root folder making sure it is set to install before the application that requires it does. + +### Update an Application + +- Import an application with source files into the AppTree Folder ensuring you hide it from the deployment wizard. + +- goto the application Bundle under the Suite root folder and set its dependency to the application you just added to the AppTree folder and remove the old version of that application. + +- return to the AppTree folder and move the old app to the Archive directory making sure you 'uncheck' the 'hide from deployment wizard'. + +### other useful info + +- utilize the uninstall key, within each application it will prevent the app from trying to install again. + +### Reasoning +This structure was adopted for the following reasons: + +- Create Deployment media based on suites (Departments / Groups / ETC.) + +- If you have mandatory applications in your config file providing you have used the Suit 'Application Bundle' you don't have to leave the GUI/Edit the config file to update the application. + +- clarity + +!!! attention + This post is considered an archived post. + + This article was originally posted on 01 Sep 2014. It has been migrated from its original source http://nofusscomputing.com/wiki/public/help/mdt/home and http://nofusscomputing.com/wiki/public/help/mdt/applications to here. \ No newline at end of file diff --git a/pages/robots.txt b/pages/robots.txt index 99b763b..23936c9 100644 --- a/pages/robots.txt +++ b/pages/robots.txt @@ -7,7 +7,7 @@ Redirect 301 /wiki/public/article/150225_choose_internet_service /articles/2015/ Redirect 301 /wiki/syntax /operations/syntax - -Redirect 301 /wiki/public/help/mdt/* /wiki/info/* +Redirect 301 /wiki/public/help/mdt/home /articles/2014/mdt_setup +Redirect 301 /wiki/public/help/mdt/applications /articles/2014/mdt_setup Redirect 301 /wiki/public/help/mantis/* /wiki/info/* diff --git a/wiki/current/info/mdt/applications.txt b/wiki/current/info/mdt/applications.txt deleted file mode 100755 index 0b7e6a5..0000000 --- a/wiki/current/info/mdt/applications.txt +++ /dev/null @@ -1,47 +0,0 @@ -====== Applications ====== -return to [[home|Contents]] - -I not only use MDT to deploy applications during OS deployment but I also have a 'Post OS Install' task sequence to install applications as well. - -Application folders Layout is pretty straight forward. - * Client Software Suite - Standard Suite - * //All Freeware applications that I install is under this structure// - * Client Software Suite - Domain - * //Local Domain only Applications// - * Server Software Suite - Domain - * //Software for use on domain Servers// - -Each suite folder is setup as follows. -^ Folder ^ Description ^ -| Suite | Applications listed here are only Application Bundles. The dependent applications for these Application bundles are selected from the AppTree folder. //They are visible from the deployment wizard.// | -| Suite\AppTree | Applications here are 'Applications with Source files' these applications are contain the acutual installers for the application in question. //They are not visible from the deployment wizard.// | -| Suite\Archive | Applications here are old versions, //they are visible from the deployment wizard.// | - - -**Figure 1. AppTree Folder Structure** -{{ :public:help:mdt:mdtapptree.png?nolink |MDT AppTree Directory Structure}} Fig 1. This is where new applications are imported to they are imported as an application with source files.\\ -\\ - -**Figure 2. Suite Application bundles** -{{ :public:help:mdt:mdtapplications.png?nolink |MDT Suite Applications}} Fig 2. These applications are application bundles with the application under the app tree folder added as a dependency. - -===== Add New Application ===== -To add a new application the following process is followed. - - Import an application with source files into the AppTree Folder ensuring you hide it from the deployment wizard. - - Create an application Bundle under the Suite root folder and set its dependency to the application you wish to install, from the AppTree folder. - - if the application you wish to install has dependent applications, select the dependent application bundle from the suite root folder making sure it is set to install before the application that requires it does. - -===== Update an Application ===== - - Import an application with source files into the AppTree Folder ensuring you hide it from the deployment wizard. - - goto the application Bundle under the Suite root folder and set its dependency to the application you just added to the AppTree folder and remove the old version of that application. - - return to the AppTree folder and move the old app to the Archive directory making sure you 'uncheck' the 'hide from deployment wizard'. - -===== other useful info ===== - - utilize the uninstall key, within each application it will prevent the app from trying to install again. - -===== Reasoning ===== -This structure was adopted for the following reasons: - * Create Deployment media based on suites (Departments / Groups / ETC.) - * If you have mandatory applications in your config file providing you have used the Suit 'Application Bundle' you don't have to leave the GUI/Edit the config file to update the application. - * clarity - diff --git a/wiki/current/info/mdt/home.txt b/wiki/current/info/mdt/home.txt deleted file mode 100755 index 96ebe8e..0000000 --- a/wiki/current/info/mdt/home.txt +++ /dev/null @@ -1,27 +0,0 @@ -====== My Microsoft Deployment Tool Kit Setup ====== -This information has been created as a record of how I do something, if you decide to follow anything within this set of pages and stuff up, your on your own!! - -I use Microsoft Deployment Tool Kit (MDT) to reduce the time it takes to install/update and to deploy a working Windows OS. The setup of MDT and time taken to test and get it right far outweighs deploying an OS by hand. Below you will find how I have setup my MDT structure and why. Most of my setup has been chopped and changed due to trial and error and to ease the burden. - -My goals for MDT are: - * Deploy any Windows OS quickly - * Easily update Applications / Drivers / Operating System - * make deployment media that could be used by a less savvy computer user. - -I currently use MDT to Deploy windows on my own network (Active Directory Domain), Stand alone machines and family and friends computers. I also use MDT to install applications and force a computer to update using my WSUS Server. - -===== Contents ===== -these sub-pages define each section of my setup a little further - - [[applications]] - - [[operating_system]] - - [[out_of_box_drivers]] - - [[packages]] - - [[task_sequences]] - - [[config_file]] - - [[customizations]] - - - -===== Folder Layout ===== - -{{:public:help:mdt:mdtstructure.png?nolink |MDT Folder Structure}} \ No newline at end of file diff --git a/wiki/dokuwiki/images/media/public/help/mdtstructure.png b/wiki/dokuwiki/images/media/public/help/mdtstructure.png deleted file mode 100755 index a923bfcdee988813ebfa2f8a0c87c601158bf8c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12868 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 Date: Sun, 30 Jan 2022 12:39:59 +0930 Subject: [PATCH 099/222] fix(mobile_display): added padding between sections on a mobile display, the sections were cluttered. added some spacing to rectify. MR !6 --- pages/stylesheets/extra.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pages/stylesheets/extra.css b/pages/stylesheets/extra.css index 5c0ce40..22ec1c8 100644 --- a/pages/stylesheets/extra.css +++ b/pages/stylesheets/extra.css @@ -89,6 +89,7 @@ a.tags:hover { .container .column { float: left; width: 50%; + padding-top: 30px; } @@ -98,6 +99,7 @@ a.tags:hover { .container .column h2 { margin: 0px; + text-align: center; } .container .column ul { From 0c3a878cfa35bd43cd381e89b54785b95f40d1ee Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Mon, 31 Jan 2022 08:21:46 +0930 Subject: [PATCH 100/222] fix(vscode): don't force mkdocs strict This will enable the project to build and display the warnings to be fixed. MR !7 --- .vscode/tasks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index fe206ea..321063f 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -9,7 +9,7 @@ { "suppressTaskName": true, "args": [ - "cd ${workspaceFolder}; . dev_env/bin/activate; pip install -r gitlab-ci/mkdocs/requirements.txt; pip install -r requirements.txt; mkdocs build --clean --strict" + "cd ${workspaceFolder}; . dev_env/bin/activate; pip install -r gitlab-ci/mkdocs/requirements.txt; pip install -r requirements.txt; mkdocs build --clean" ], "problemMatcher": [], "label": "MKDocs Build Static Site", From bbb639634b166b4f36a771c13bff430d38b6953b Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Mon, 31 Jan 2022 08:22:15 +0930 Subject: [PATCH 101/222] feat(vscode): extension recommendations added. MR !7 --- .vscode/extensions.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .vscode/extensions.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..4f3aff6 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "gitlab.gitlab-workflow", + "ms-python.python", + "njpwerner.autodocstring", + "davidanson.vscode-markdownlint" + ] + } \ No newline at end of file From 927a97c9136aef1aa6f0524a473fea7171df409b Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Mon, 31 Jan 2022 10:36:36 +0930 Subject: [PATCH 102/222] ci(gitlab-ci): updated to new commit for markdown lint to work markdown lint had a bug where it would not discover markdown files. bug was fixed in commit 'f6d7ebeeb2b9d643c37ccbe6e25fa8d7e9dd970d' gitlab-ci updated to use this commit. MR !7 --- .gitlab-ci.yml | 2 +- gitlab-ci | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eec1962..3746284 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,7 +13,7 @@ variables: include: - project: nofusscomputing/projects/gitlab-ci - ref: ce1cc017e26ff7f6cee586cc7d98e4d292275672 + ref: f6d7ebeeb2b9d643c37ccbe6e25fa8d7e9dd970d file: - conventional_commits/.gitlab-ci.yml - mkdocs/.gitlab-ci.yml diff --git a/gitlab-ci b/gitlab-ci index ce1cc01..f6d7ebe 160000 --- a/gitlab-ci +++ b/gitlab-ci @@ -1 +1 @@ -Subproject commit ce1cc017e26ff7f6cee586cc7d98e4d292275672 +Subproject commit f6d7ebeeb2b9d643c37ccbe6e25fa8d7e9dd970d From 52b946656853519f5a00a33cb7b716ae7ecf70e6 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Mon, 31 Jan 2022 10:38:37 +0930 Subject: [PATCH 103/222] chore(gitignore): exclude package.json from commiting to repo MR !7 --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 093ffbf..7b8a8a4 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ aux/ # ignore dev env dev_env __pycache__ +package*json # ignore junit *.junit.xml From 185a0958291e5a785572fc1fd75b67e567341c99 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Mon, 31 Jan 2022 10:46:00 +0930 Subject: [PATCH 104/222] chore(syntax): remove syntax page as not required as part of the ops manual this page will be included there. MR !7 --- mkdocs.yml | 4 ---- pages/operations/syntax.md | 15 --------------- 2 files changed, 19 deletions(-) delete mode 100644 pages/operations/syntax.md diff --git a/mkdocs.yml b/mkdocs.yml index 35bc826..92c67bd 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -151,10 +151,6 @@ nav: - operations/index.md - - Development: - - - operations/syntax.md - - Wiki: - wiki/index.md diff --git a/pages/operations/syntax.md b/pages/operations/syntax.md deleted file mode 100644 index ec78ecf..0000000 --- a/pages/operations/syntax.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Supported Markdown Syntax -tags: - - Development - - Markdown - - Website - - mkdocs ---- - -# Supported Markdown Syntax - -!!! Notice - This page is still being constructed - -_This website uses markdown documents to create the pages, please see the [reference guide](https://squidfunk.github.io/mkdocs-material/reference/) for further items that can be used._ From 8b50d28aabdb1361036c137329695c29edf04f62 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Mon, 31 Jan 2022 10:55:44 +0930 Subject: [PATCH 105/222] refactor(home_page): added nfc logo MR !7 --- {public/images => pages/assets}/nfc_header.png | Bin pages/index.md | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) rename {public/images => pages/assets}/nfc_header.png (100%) diff --git a/public/images/nfc_header.png b/pages/assets/nfc_header.png similarity index 100% rename from public/images/nfc_header.png rename to pages/assets/nfc_header.png diff --git a/pages/index.md b/pages/index.md index 0529735..e738286 100644 --- a/pages/index.md +++ b/pages/index.md @@ -7,6 +7,7 @@ hide: - navigation - toc --- -# No Fuss Computing + +![No Fuss Computing](assets/nfc_header.png) Home Page From 4c6e73254acd5ee2b9c5bc9eefbf33679475eb53 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Mon, 31 Jan 2022 10:56:13 +0930 Subject: [PATCH 106/222] chore: cleaned up old folders MR !7 --- public/CA/38d0082d.pem | 43 ------ public/CA/CRL/Earth_VPN_CA.crl | 22 --- public/CA/CRL/NFCCA.crl | Bin 892 -> 0 bytes public/CA/CRL/NFC_Root_CA.crl | 26 ---- public/CA/CRL/NWWPegasusVPNCA.crl | 22 --- public/CA/CRL/NWWRootCA.crl | 29 ---- public/CA/CRL/NWWVPNCA.crl | 29 ---- public/CA/CRL/NWW_Root_CA.crl | 32 ----- public/CA/CRL/Pegasus_VPN_CA.crl | 19 --- public/CA/Earth_VPN_CA.crt | 44 ------ public/CA/NFCCA.crt | 35 ----- public/CA/NFC_Root_CA.crt | 43 ------ public/CA/NWWRootCA.crt | 29 ---- public/CA/NWWVPNCA.crt | 35 ----- public/CA/NWW_Root_CA.crt | 43 ------ public/CA/Pegasus_VPN_CA.crt | 43 ------ ...6498e823d880414b763cd9cc813ef1fceecbf8.crt | 44 ------ ...7f3ab4d51614749a1d1171a4433fc000499922.crt | 29 ---- ...B29700FF9E229EA866C1F718E2ED73DE5FC38E.crt | 127 ------------------ ...355ad0a3d470d1f1608566c48df94b9da5f308.crt | 43 ------ ...c674f8bf82d0aea70e05aafc8ddddbab9bab56.crt | 35 ----- .../CA/public/Developer-jonathon.lockwood.crt | 47 ------- public/CA/public/Earth_VPN_CA.crt | 44 ------ ...NFC_Public_Website-nofusscomputing.com.crt | 34 ----- public/CA/public/NFC_Root_CA.crt | 43 ------ public/CA/public/NWW_Root_CA.crt | 43 ------ .../NWW_VPN_Server-vpn.networkedweb.local.crt | 40 ------ public/CA/public/Pegasus_VPN_CA.crt | 43 ------ public/index.html | 52 ------- 29 files changed, 1118 deletions(-) delete mode 100644 public/CA/38d0082d.pem delete mode 100644 public/CA/CRL/Earth_VPN_CA.crl delete mode 100644 public/CA/CRL/NFCCA.crl delete mode 100644 public/CA/CRL/NFC_Root_CA.crl delete mode 100644 public/CA/CRL/NWWPegasusVPNCA.crl delete mode 100644 public/CA/CRL/NWWRootCA.crl delete mode 100644 public/CA/CRL/NWWVPNCA.crl delete mode 100644 public/CA/CRL/NWW_Root_CA.crl delete mode 100644 public/CA/CRL/Pegasus_VPN_CA.crl delete mode 100644 public/CA/Earth_VPN_CA.crt delete mode 100644 public/CA/NFCCA.crt delete mode 100644 public/CA/NFC_Root_CA.crt delete mode 100644 public/CA/NWWRootCA.crt delete mode 100644 public/CA/NWWVPNCA.crt delete mode 100644 public/CA/NWW_Root_CA.crt delete mode 100644 public/CA/Pegasus_VPN_CA.crt delete mode 100644 public/CA/certs/236498e823d880414b763cd9cc813ef1fceecbf8.crt delete mode 100644 public/CA/certs/9c7f3ab4d51614749a1d1171a4433fc000499922.crt delete mode 100644 public/CA/certs/A9B29700FF9E229EA866C1F718E2ED73DE5FC38E.crt delete mode 100644 public/CA/certs/ac355ad0a3d470d1f1608566c48df94b9da5f308.crt delete mode 100644 public/CA/certs/d8c674f8bf82d0aea70e05aafc8ddddbab9bab56.crt delete mode 100644 public/CA/public/Developer-jonathon.lockwood.crt delete mode 100644 public/CA/public/Earth_VPN_CA.crt delete mode 100644 public/CA/public/NFC_Public_Website-nofusscomputing.com.crt delete mode 100644 public/CA/public/NFC_Root_CA.crt delete mode 100644 public/CA/public/NWW_Root_CA.crt delete mode 100644 public/CA/public/NWW_VPN_Server-vpn.networkedweb.local.crt delete mode 100644 public/CA/public/Pegasus_VPN_CA.crt delete mode 100644 public/index.html diff --git a/public/CA/38d0082d.pem b/public/CA/38d0082d.pem deleted file mode 100644 index 6ed8a02..0000000 --- a/public/CA/38d0082d.pem +++ /dev/null @@ -1,43 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHpTCCBY2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMCQVUx -CzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQL -EwNOV1cxFDASBgNVBAMMC05XV19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25h -dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr -ZWQgV2ViIENlcnRpZmljYXRlMB4XDTE3MTIyMTAwMDAwMFoXDTI3MTIyMDIzNTk1 -OVowgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAK -BgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTEx -MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv -bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBANNh/YQ88bqyR2569AwMnqe+9VjeUoFQcGgr -JjcS76lZaAERnbl49PJM6X9xcFBQoCD3S1WnNXL26ZtA+PKdfvZOL8GIkwZQrXNB -Ts2f4VP1dahuxuHYlmlwlpdT84JKZlDloUrDOgx0D707Z+ybUrTFjqaQjp/ZfybQ -QLiYfK/6v7K7rOh8WyeWWunDo8uYlZWmtmzAQU9IQimYWepZ4/O+yfWnUVRGvYMD -daALrNaj5MO41J13Y5sXDdl++yTCbujJ+xTDHKfjoJ+KpEuLa8VzWjJYAjm+TSXK -gWObOxpnrb4sW2bB2pPtwQoOKd3tXYW2bRKJHGt2pVzgyGUjZ1yGKFS04+cg9OpP -ePFtS4aTKVTMIe7BHwPA1fhu2efqmfP0vSY0EmRHuk9GIqo1r5EiC94xOcAuLkPG -RquMQr+moD27JrhhlF9vw/Z9pr6gZ+hUDYGbE0913F1mjdtYp1lBmaLysLwpI0lH -PUZdFdejCbnvPfH9EVxNRgbM5J/yzfRB//QRnufpjC2OgB6zTnifsYIOOSYHYgCK -4DLrin74j4YiUGm49wuTwdqk52B8bkDzx4cWwIpJWYIeQC2xMrR/RvdrDMxt1Frg -k5es0NHMWAzd2C2PRS2fmvuUdq2+QZRe721TvoeFLMI05PnUrxOkz/din8BNWtsN -AoBCi3FdAgMBAAGjggHGMIIBwjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRI -6WaWbdVLxOTffYdPlqd7zAw+7TCB3QYDVR0jBIHVMIHSgBRI6WaWbdVLxOTffYdP -lqd7zAw+7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYD -VQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05X -V19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3 -b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRl -ggEBMA4GA1UdDwEB/wQEAwIBBjBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vbm9m -dXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldXX1Jvb3RfQ0EuY3JsMEkGCCsGAQUF -BwEBBD0wOzA5BggrBgEFBQcwAoYtaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20v -Q0EvTldXX1Jvb3RfQ0EuY3J0MBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0B -AQsFAAOCAgEARpj46yWBnbJIfqh7V9c1AWZmbzqogJynp5AqyC2e8Rp59dpPKJ60 -BC2WVUMsCHqyhl6oZwmn2Ejud+iodGo4IwdgDneFvQQAiF7TVTBnBRHnup3rLtTX -zvqIBPyqBmrvZSjSfG0mStb3YWS41yj9bhsqy1qRTdXS+Ghc4I1DcOWu62NbhbP/ -UHPUEwCyPxEWLtxk0u8N8Hqmlr3qHHM53cKaOUUIn6VMtq2S0o39xWt7QuHWe3Aa -COQYaAVQ60f9cZUmw7h31d3oen7nrlaaDAp7i1e4HuTb8+PzetoGjJ8xCt4cbnp0 -ThQFdVuaLszSiHpmsKPvdazIVjhvT7CTM5EydsDHZFA6cMmWjYYm5f9MXbiCSebC -2q+2W2vO92yd/8JE3JCRc8A2Mi4RSw9SziN/MCvueorIFJXfawz3rARgk5KXKPNj -DBHcxxaQOTCJHLblGsv+9S/ANnucOihQRPWPGKGr80Yy5wQ8TKnuElvzrOjyR2Cj -HGqSX2ar1GnFtmDsfamnJ0kb+2Sbamt3slAxUM/Qc+SIWepVtSNb8IppWPCxmPOd -QyUMRayfkkc2qdo3xyUV1zE/alMPK6k0epyZ0+lyTo+sVpyzVq/D1wS63pUXiK/f -gB5/XW5AC1ngeN3DBlOc/R5mscyv4o4cHOauxMKjldGgGhqI0QnRSi4= ------END CERTIFICATE----- diff --git a/public/CA/CRL/Earth_VPN_CA.crl b/public/CA/CRL/Earth_VPN_CA.crl deleted file mode 100644 index 2455d33..0000000 --- a/public/CA/CRL/Earth_VPN_CA.crl +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN X509 CRL----- -MIIDjzCCAXcCAQEwDQYJKoZIhvcNAQELBQAwgaoxCzAJBgNVBAYTAkFVMQswCQYD -VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEOMAwGA1UECxMFRWFy -dGgxFTATBgNVBAMMDEVhcnRoX1ZQTl9DQTEoMCYGCSqGSIb3DQEJARYZaW50ZXJu -YWxAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0 -aWZpY2F0ZRcNMTcwOTAzMDE0MjAwWhcNMTcxMDAzMDE0MjAwWjCBhzBBAggigeQN -UjXbIRcNMTYwNzIzMDMwMDQ3WjAmMBgGA1UdGAQRGA8yMDE2MDcyMzAzMDAwMFow -CgYDVR0VBAMKAQQwQgIJAM2h1w1EQ5qtFw0xNjA3MjMwNTU2MjRaMCYwGAYDVR0Y -BBEYDzIwMTYwNzIzMDU1NjAwWjAKBgNVHRUEAwoBBaAOMAwwCgYDVR0UBAMCAQUw -DQYJKoZIhvcNAQELBQADggIBABLLdl2PjX5MlxZ6fhkmKsU47xlpWdG4UUKc2Mcb -ioi8HJKH4RgLOhVBEmtV91RsndCNf3TMpAzDH5zySCNhIZk5ZT1m3yk2TEMse34a -qTWzfEpCNGPbhDTz2Eu553LZKg8Vem0OEKHjKp0i0vOXG7TN/9SHBs5pOUDYX3Z/ -iK6Xt6wQ6Ajl4x8mfArivwmVVK0ZIQJpHSSHhv29HzzJpgu8ZuI16ooomGrnEnlF -Sv3tNo0UleARmzKd+dlTsSfPq/gmcX1J3bgTB2QqQTyhQRewn5TC74pJ5CC3wGeW -wzsI/xovSKWwgrWSKTfaKwAhnamJQ8Ya96zEgPnc+k4UJ0IMNdY47/3OlQIvtCmG -D16D6j4T9M6TbdBKSLdNTPZXXU1jXTc5qIUccBAZqJSxOHqp15JTx5x6mVqhx6AT -dmL+ydm8UjjG/1kc//qjuXkDc7WoklTPd6vGawBsezoS8T4+okrFIG9domcFVKrL -D+JyMe2ZkJpRferxdVOSh773M/mNBI430aL3TKY6oPhvwx7gmpCPX3trUv+gi/Om -9f7mHZFk/qUs3pomAffaZzeX9g3+sktMY2l3cTYqsAOZGrUDbFjks+LGbCmHhnVm -KTl7QRbEnte2Bpz4GeN0XAf9HntA2A0yfoOWgsH6FEkh8H839fBAErvzpqD0qCDV -xY2/ ------END X509 CRL----- diff --git a/public/CA/CRL/NFCCA.crl b/public/CA/CRL/NFCCA.crl deleted file mode 100644 index 4420166db17100be1a272d488e74c961dace4d3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 892 zcmXqLVy-Y~VoYFSWHjJq$fA{gK5@VeS@5 zu%wZJxq+dffr)99ftmpq(0Ex<7G^F+76SCtfKxyrFnaBz;roD$%XT(@_EL^Qq-{rmjSg_TWR@pskSsw%)dGO=rvX-2b zMiJ9)os%0i-j(}VvA^qlcKmzSfzW2vrjIkVik5bl+eMWHzsv3q*rRy$tGbo=2Hpu> zRw{anZP#omIx+e7wQuUTFEDVn)aYCkUd5)RyKv4q<(@qg6np<`8^|RX&aVpTrq9!z}j*!RN$iKy-0q*QtO{+{0>a>wt<38OT( zW7h4rn(yfgmz-k^-Ermef6v>yl>7hkTCSIAN|ihusI}n})4YFg@l*fPhux#NexdX)|`-g=FT#vqj6>h zm(DEtl(Aar>vzFVshz4v3=5~+G^VeMSJ*wCF iLIqh5^GEOHc#0;@7e^PZDIgpbX4B} diff --git a/public/CA/CRL/NFC_Root_CA.crl b/public/CA/CRL/NFC_Root_CA.crl deleted file mode 100644 index 058e956..0000000 --- a/public/CA/CRL/NFC_Root_CA.crl +++ /dev/null @@ -1,26 +0,0 @@ ------BEGIN X509 CRL----- -MIIEWTCCAkECAQEwDQYJKoZIhvcNAQELBQAwgaoxCzAJBgNVBAYTAkFVMQswCQYD -VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTkZD -MRQwEgYDVQQDDAtORkNfUm9vdF9DQTErMCkGCSqGSIb3DQEJARYcaGVscGRlc2tA -bm9mdXNzY29tcHV0aW5nLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0 -aWZpY2F0ZRcNMTgwODA1MDEyNzAwWhcNMTgxMDA0MDEyNzAwWjCCAVAwQQIIDa1c -UsioJyoXDTE1MTAzMTA0MzkxN1owJjAYBgNVHRgEERgPMjAxNTEwMzEwNDM5MDBa -MAoGA1UdFQQDCgEEMEECCBIR9spKIlyLFw0xNjAxMDkwMDM1NTNaMCYwGAYDVR0Y -BBEYDzIwMTYwMTA5MDAzNTAwWjAKBgNVHRUEAwoBBTBBAghovaIOdTUkJhcNMTUx -MDMxMDQ0NTM0WjAmMBgGA1UdGAQRGA8yMDE1MTAzMTA0NDUwMFowCgYDVR0VBAMK -AQQwQQIIdCmC/xpJTM0XDTE1MTAzMTA0NDMxOFowJjAYBgNVHRgEERgPMjAxNTEw -MzEwNDQzMDBaMAoGA1UdFQQDCgEEMEICCQD9Keh+217BPhcNMTUxMDMxMDQzMTE1 -WjAmMBgGA1UdGAQRGA8yMDE1MTAzMTA0MzEwMFowCgYDVR0VBAMKAQWgDjAMMAoG -A1UdFAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAjjuEFC9NS8IatH6V+bXVj+NuA -Y6BkDT/u4uOvKecLZjM8OuSAlj+yVPEp5d0QKFGEN/1fmkLyqRK/0vhoLNufwnzL -eM14l/aZpTudl8dVf2EeJa2i/whUP9AOf8QH4UQxtWzbmPzcrZbfJdrRe2L8g8xl -yyMi/htHszutqIP1ZuwhYFGFHJZNiUHwm/LV8Ht0ZnI05YrqsMY9VFVXOT46qbMH -CaL/jx0xd4+nrXcbTSD1aKlagkY/7nHh5JIyK5f0nWiZ6uIc1ZLrXjgvT3mG9oWC -fImXfeK/dD0Q8s67Tmcb8EyhuYPabb/h/Vw6IpUAGg5KxjW+fLfpeqS5sivDzp65 -lkgsYv4PCe7C2lW/sapBVx47ISXIaNLNR0gTA8dE5mTbHIIwaa4rDL3jvtmPkNa5 -qv/0HXH0oRYKjEQLFgCI77ZNU6bCXPmpCxiD+2s3+fEHxRHYjVn7Tyk0Qdeqrllu -8qKA18tP5icF0PXv7sVouXdHCBK4nLfgzHfaLr2zhVfO154evKzLDS1GmDcytCl+ -MFhA1RM94xfwOxPwiHJ/e4MpdJ3BE7lxRiyVoBQiV0xwP0clhoCadBMvvDvGnkGc -AZ7UQDK5YhXh06Pv+ByX3xxE9Vp7Bo/teFxIwYPVH2BmPAowVoMzCLkj36yv1keC -laDVPqeP/31+efeFsA== ------END X509 CRL----- diff --git a/public/CA/CRL/NWWPegasusVPNCA.crl b/public/CA/CRL/NWWPegasusVPNCA.crl deleted file mode 100644 index 9b06b7d..0000000 --- a/public/CA/CRL/NWWPegasusVPNCA.crl +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN X509 CRL----- -MIIDtzCCAZ8CAQEwDQYJKoZIhvcNAQELBQAwgdkxCzAJBgNVBAYTAkFVMRYwFAYD -VQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3BlY2lmaWVkMRYwFAYD -VQQKEw1OZXR3b3JrZWQgV2ViMRswGQYDVQQLExJOV1cgUGVnYXN1cyBWUE4gQ0Ex -FzAVBgNVBAMTDlBlZ2FzdXMgVlBOIENBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5h -bEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRp -ZmljYXRlFw0xNTEwMjUwMDAwMDBaFw0xNTExMjMyMzU5NTlaMIGAMDoCAQoXDTE1 -MTAyNTAyMDAxMVowJjAYBgNVHRgEERgPMjAxNTEwMjUwMjAwMDBaMAoGA1UdFQQD -CgEJMEICCQC1TE15xf9+yxcNMTUxMDI1MDIwMDE4WjAmMBgGA1UdGAQRGA8yMDE1 -MTAyNTAyMDAwMFowCgYDVR0VBAMKAQmgDjAMMAoGA1UdFAQDAgEBMA0GCSqGSIb3 -DQEBCwUAA4ICAQA7ZZfRgAi2b38IqxXLsINcyczWQ8/y8SKVv4xlu0SRkfWBVYF5 -pqD5lIjwZNKIqIpUzq4AYqV3u7GnkPfQ7WDIMveZZwp6DL2Jc0cjz1gNsU0ezyxt -V0JQLppUbH/x3xBR/+NszvZaCVYFOyrlUFSYO06CqXWRgpnJuhk0vJQygU6C9xcO -OzM7JlgI0NT/O3IDPC4gh/TPFdKnKVfcNpFimwJ91w1eMvTkpys2BvrKk0/bAuQz -PVtCx45kqCyP8WiMb0PZmQKAOdIREHb4sGS2dPocBARYxwFYDwgQ8g3BqnHCLM87 -Og1+b3QACi2PZ4e3yV8pqJhXnix97N036WkVV11J9VLdOUIPzkXsDFMmkYh4z9Vg -GOA5lzRTXYJVk7E7t4BDT7cu6y8ugW2BsLMlh0XrGTDwNhzJ8GBYWAkG2t+H+N/m -hLsBqt0tn/8XQvkize7qauado1CaouWMHWwA84ZX811vXW29m3VmYxQl5Q3oJWul -Rp1M9xISRVzpRx6GuzVPzN9LEfI4ZvSvHLUva9i6A08hj5aUYDvgtXmyaC+PaxBs -SfX06CeylzOf4hm3hubcGu+5Ynke7ZtpECSGxr5I/72oC6zukkiv9i6FXC1oGxuo -pBBjuoeG2MmO8HdDKE0T5XqkqmQv7Um4clDYRInMCACSthtW8U0ry7Wamw== ------END X509 CRL----- diff --git a/public/CA/CRL/NWWRootCA.crl b/public/CA/CRL/NWWRootCA.crl deleted file mode 100644 index 6f3f23f..0000000 --- a/public/CA/CRL/NWWRootCA.crl +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN X509 CRL----- -MIIE5zCCAs8CAQEwDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNVBAYTAkFVMQswCQYD -VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTldX -MRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24u -bG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdl -YiBDZXJ0aWZpY2F0ZRcNMTgwMjA1MDQ1OTAwWhcNMjAwODA1MDQ1OTAwWjCCAdgw -PwIGIBUQJxYnFw0xNTEwMjcwNzQ0NTZaMCYwGAYDVR0YBBEYDzIwMTUxMDI3MDc0 -NDAwWjAKBgNVHRUEAwoBBDBBAghaYikTObwI4BcNMTUxMDI3MDcxNTAwWjAmMBgG -A1UdGAQRGA8yMDE1MTAyNzA3MTQwMFowCgYDVR0VBAMKAQQwQgIJAMXtJgEvbEgG -Fw0xNzEyMjEyMzQ2NDFaMCYwGAYDVR0YBBEYDzIwMTcxMjIxMjM0NjAwWjAKBgNV -HRUEAwoBBDBCAgkAxe0mAS9sSAcXDTE3MTIyMjAwMDUxMVowJjAYBgNVHRgEERgP -MjAxNzEyMjIwMDA1MDBaMAoGA1UdFQQDCgEEMEICCQDF7SYBL2xICBcNMTcxMjIy -MDE0OTQ2WjAmMBgGA1UdGAQRGA8yMDE3MTIyMjAxNDkwMFowCgYDVR0VBAMKAQQw -QgIJAMXtJgEvbEgKFw0xODAxMDUwNTA3MzlaMCYwGAYDVR0YBBEYDzIwMTgwMTA1 -MDUwNzAwWjAKBgNVHRUEAwoBBDBCAgkA1bayDE6HOc0XDTE1MTAyNzA3MTAwNlow -JjAYBgNVHRgEERgPMjAxNTEwMjcwNzEwMDBaMAoGA1UdFQQDCgEEoA4wDDAKBgNV -HRQEAwIBCzANBgkqhkiG9w0BAQsFAAOCAgEAJbVR23uwFuOi4fCQHn/0gLm24PjI -xkXeim/Vep9vc3LCH1+r73O3Pf5kWKBmklul9MpywDAyPiV5wU6k2x8EMSKLEe+n -IRE+32JKPSGx2nluSn2IUonQKF+ZtG0hW367+D3HShdinzNuUbqfGGlAjZwmgKem -zydh7VSkvBxQersvXknPvoIjbTOfw0l10icE4WwbY5PtHdz+SYUH86UrVHPH5MG3 -tJEMnmZfbyGAs6vYm/NDD4cF4tIF4ziId7nmPBUf7dnFlw75xRUjyem397AnUOez -zS+K/j9u3V/um8jfaKkdXFfT8DOaiFv9YBsdwOTsgDFgKTalgWHbibOH2wk/ZrM6 -k+hfpgoE5/CtZyKKD/s5SuYcBYEfYY1M2g/QzU7RpScjPz+yvIBoOhitk+urHBBq -Cx3iM9HW1vNq8trJomeFkqGFSiN+Uv4hq51BThljLxaMoga2tE4hdeO3kIr2Ntv/ -acoTKbljxX2YxCvkZXombmX2wecORO3uS+TNKolgzU7FE8vRI6E7yC+jjdDpksYL -wVL7pa0kL2YtagpmOLFCeSlQ/iWlQMUSqBLbpyEWX/JvgVghUWcwn0n65UEr+zyQ -LzhaXpc2MNVRoskN1ONSCCJW34x2IBzG6+Pk/dKKKAna4340zG5txyKKl5jLkh5/ -YJP4oXLy576q/30= ------END X509 CRL----- diff --git a/public/CA/CRL/NWWVPNCA.crl b/public/CA/CRL/NWWVPNCA.crl deleted file mode 100644 index 0e8b81b..0000000 --- a/public/CA/CRL/NWWVPNCA.crl +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN X509 CRL----- -MIIFDDCCAvQCAQEwDQYJKoZIhvcNAQEFBQAwgdYxCzAJBgNVBAYTAkFVMRYwFAYD -VQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3BlY2lmaWVkMRYwFAYD -VQQKEw1OZXR3b3JrZWQgV2ViMRMwEQYDVQQLEwpOV1cgVlBOIENBMRMwEQYDVQQD -EwpOV1cgVlBOIENBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBu -ZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmlj -YXRlFw0xNTA2MDUxMDU3MDBaFw0xNTA3MDUxMDU3MDBaMIIB1zBAAghGwdK73FPg -2hcNMTMxMjIzMDgzMjI5WjAlMAkGA1UdFQQCCgAwGAYDVR0YBBEYDzIwMTQwMjAx -MjM1NTUwWjBAAghL9H8/00JjmxcNMTMxMjI0MDA0NjQ5WjAlMAkGA1UdFQQCCgAw -GAYDVR0YBBEYDzIwMTQwMjAxMjM1NTM1WjBCAgkAgqnPP+Wf1YkXDTE1MDIwNzAx -MDgyNlowJjAKBgNVHRUEAwoBBDAYBgNVHRgEERgPMjAxNTAyMDcwMTA4MDBaMEIC -CQCF4C80Bu+WxhcNMTUwMjA3MDEwODAyWjAmMAoGA1UdFQQDCgEEMBgGA1UdGAQR -GA8yMDE1MDIwNzAxMDcwMFowQgIJAIdWbI4ErRreFw0xNTAyMDcwMTA3MDdaMCYw -CgYDVR0VBAMKAQQwGAYDVR0YBBEYDzIwMTUwMjA3MDEwNjAwWjBBAgkAtUQpLTey -hp8XDTEzMTIyNDAwNDUwNlowJTAJBgNVHRUEAgoAMBgGA1UdGAQRGA8yMDE0MDIw -MTIzNTU1MFowQgIJAMpeaX2ilH7BFw0xNTAyMDcwMTA2NTNaMCYwCgYDVR0VBAMK -AQQwGAYDVR0YBBEYDzIwMTUwMjA3MDEwNjAwWqAOMAwwCgYDVR0UBAMCAQ8wDQYJ -KoZIhvcNAQEFBQADggIBABUTNIxIswUIcEKCDyF4rQFtB9YLKv4jX5JuR3WAdh+k -R3cTDeDut34tvN9WMj9ukqXYcBMceqlVSjGEw2S5yCF9GFfZuwkBKoGw+yqX9obz -11GM4+mOGeJzPsWLEMhFjcl53OWIVhkcyko6uVPrQ88JlTJWrligBE8CYsIcDpdu -9RyPuo2lzvQ0/cS6FkENnVlp0ILFIV9YExdb/ot486XRmk4EjTwqawea58BwY4+k -0g9okPIilDzE7nScvBIW3S1WRY2WCRrLccfJ3x0oCPDbVYxseKJ/SPCmar8KvM5A -y7hAhOpQ4nZGATYXcvRyA0pPagKafIWpXpoQiu7kMn38Dlmaeqp3qL7sfLUjj/QJ -UVovISWkIQx9RTwx8CixCABJnLXYeiiXycsPc4rvcoxNqU9FdDwlK+kfU8tQkCm6 -QJI4o5vH4s1cVFcjBnhJWRmK3gARKltKkgkGVxFHedZJ3CziwGHPFA0gySZEzPNt -jC1g6auCROVTFQKoQ+nxreIF76ia0siWlYCyS022f4mOaBaR9lzSuNUH5YnF3h8u -ZO+lwLpGQ6NPocg3kEOHrlQklw4KMx3ZJha7G2nz5DWTMt4jTFGKU0iLabYkU+HR -IgKOdOCqWWCdFuXxOlneCIkagWZXWpPXBHMSBw8IPIyp9ts2o8dzGclErBWh96bz ------END X509 CRL----- diff --git a/public/CA/CRL/NWW_Root_CA.crl b/public/CA/CRL/NWW_Root_CA.crl deleted file mode 100644 index 0ea7579..0000000 --- a/public/CA/CRL/NWW_Root_CA.crl +++ /dev/null @@ -1,32 +0,0 @@ ------BEGIN X509 CRL----- -MIIFmzCCA4MCAQEwDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNVBAYTAkFVMQswCQYD -VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTldX -MRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24u -bG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdl -YiBDZXJ0aWZpY2F0ZRcNMTgwODA1MDEyODAwWhcNMTgxMDA0MDEyODAwWjCCAoww -PwIGIBUQJxYnFw0xNTEwMjcwNzQ0NTZaMCYwGAYDVR0YBBEYDzIwMTUxMDI3MDc0 -NDAwWjAKBgNVHRUEAwoBBDBBAghaYikTObwI4BcNMTUxMDI3MDcxNTAwWjAmMBgG -A1UdGAQRGA8yMDE1MTAyNzA3MTQwMFowCgYDVR0VBAMKAQQwQgIJAMXtJgEvbEgG -Fw0xNzEyMjEyMzQ2NDFaMCYwGAYDVR0YBBEYDzIwMTcxMjIxMjM0NjAwWjAKBgNV -HRUEAwoBBDBCAgkAxe0mAS9sSAcXDTE3MTIyMjAwMDUxMVowJjAYBgNVHRgEERgP -MjAxNzEyMjIwMDA1MDBaMAoGA1UdFQQDCgEEMEICCQDF7SYBL2xICBcNMTgwNDA0 -MDExMTExWjAmMBgGA1UdGAQRGA8yMDE4MDQwNDAxMTEwMFowCgYDVR0VBAMKAQQw -NgIJAMXtJgEvbEgJFw0xODA0MDMwNzU4MDdaMBowGAYDVR0YBBEYDzIwMTgwNDAz -MDc1ODAwWjBCAgkAxe0mAS9sSAoXDTE4MDEwNTA1MDczOVowJjAYBgNVHRgEERgP -MjAxODAxMDUwNTA3MDBaMAoGA1UdFQQDCgEEMDYCCQDF7SYBL2xIDRcNMTgwNDA0 -MDA1ODM4WjAaMBgGA1UdGAQRGA8yMDE4MDQwNDAwNTgwMFowQgIJAMXtJgEvbEgO -Fw0xODA0MDQwMTExMDBaMCYwGAYDVR0YBBEYDzIwMTgwNDA0MDExMDAwWjAKBgNV -HRUEAwoBBDBCAgkA1bayDE6HOc0XDTE1MTAyNzA3MTAwNlowJjAYBgNVHRgEERgP -MjAxNTEwMjcwNzEwMDBaMAoGA1UdFQQDCgEEoA4wDDAKBgNVHRQEAwIBDzANBgkq -hkiG9w0BAQsFAAOCAgEAqAPkorhG9ASJ85EebuhVSCQ2FVtceMvbzF7TW9cNcifk -pgsfHZOSHWXprmDmDv1KVbjeTIyYUufycyfF4u9g6DMGdH6N8ScV+PItUcyTAy21 -ZqHxdJxdYtaxcJlkHnrAhOLs4KhwTUAkdivZZUZKnFQHntmZA+hIkvDiVZQ3IP05 -frf+1UzOZX3MftQLGQtUZ5fM2JHzPwO07eUNjiD3nwcX/N8YcyrxHaZG7aTYUEEq -7QIw10ghRrUCZw8TnL5grQYJdmsA8aI152tI+eevjgdECSbt+6uQpnPa/Z0pyRug -ahtY0EJUrw/2VPvm4T8aHVTe/E/EkWccyiJFBs9Qe6VOs/uWx572O8q9eOzYOZoY -m2YmrDlvqBD5km45JrDfjS1mRRPAHeRyt5JIB9Jf2zFBJUU5SHB+KZP02NvoxEOK -/sRPKKZP/54dRhAgCUhAjw9knLjChWlL4RpLn6Vf08saL08Tfh5hbWMsnCGjesyf -Cf3aqisHc/5dxCqfKKtn/RjGrXSHsh/y+TtvYP9ssVQdCFc3qvVpxwhex1fms4Mp -THCm2JQlZMaMALPgoeaVyTX3K47/oBQaMh7DcN4Eq9j89OpUNHwhXU1bD5CWM2UY -BUu5+2wIAj/3Ifuo4JTcOnhCBwuF2sSATiRV7Y3QjgKRmqhuzMBUNRKw3Cc2Z48= ------END X509 CRL----- diff --git a/public/CA/CRL/Pegasus_VPN_CA.crl b/public/CA/CRL/Pegasus_VPN_CA.crl deleted file mode 100644 index 5520248..0000000 --- a/public/CA/CRL/Pegasus_VPN_CA.crl +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN X509 CRL----- -MIIC/TCB5gIBATANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCQVUxCzAJBgNV -BAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMRAwDgYDVQQLEwdQZWdh -c3VzMRcwFQYDVQQDDA5QZWdhc3VzX1ZQTl9DQTEoMCYGCSqGSIb3DQEJARYZaW50 -ZXJuYWxAbmV0d29ya2Vkd2ViLmNvbTEXMBUGA1UEDQwOUGVnYXN1c19WUE5fQ0EX -DTE1MTAzMTA1MTEwMFoXDTE1MTEzMDA1MTEwMFqgDjAMMAoGA1UdFAQDAgECMA0G -CSqGSIb3DQEBCwUAA4ICAQCxo2KoBQ+1IP+ZuiqG78QhjVRLepmxiHzGUw6gkzIz -kkCyNSc/V0ZfdaRtWYZ23A7WjNSvdQuwhKp5Nq8SlCVcH0ymb0nvifT4w7TOQxFf -0FpK76hYD1Ozx71/prI9q1QyRjD9yqMmxYObAQphrGJVZ8ljpKUYLOvxg6NMO8Ns -ZYLlryLYf0+MdID2WejW9KFgBSg/bi49UHxJw4hGnXx98IAVSbnqYmxejiEjwbLQ -5C8cgozEn9RUMSdWzL9d2IUOt9ppKfy7VgOH/2io0IMb28RxD/b3RdCCNNelSKFE -DJrSuOwhvP32u71CYN/6GEcg3yHif5d88yKnmPkC/iwr79oLe0dQh0SRsO037sUE -G53sA+9N69EtwqwXjPFjruns3ngtJye76gJksceI9JJB9Q5qfShCSqVviX5iCcMU -tNv5mYtS6yOIjUgPpvBOSuUPwsiegGE6Zgvz2EMgutaxnDdgbkvO/8gEy154kft0 -1l8W+/ueUEAZPTifoSMWr8Up6PFKAdCO46XSvWEuQ1NcZeWvq1EioBT1U2M65hB3 -bKtRFWUkCxQJWxye/eLw+SGGGwVpXy3P7sueUWiXFSmtAbfXuWej9LlMju5FUKXY -34K6RlI/GkPhwfWN5SAfYnX3qOF3IUiTAxchCQZ2Z6JR1dIEShHX4Ur4FdW45lXM -aw== ------END X509 CRL----- diff --git a/public/CA/Earth_VPN_CA.crt b/public/CA/Earth_VPN_CA.crt deleted file mode 100644 index f48d3ce..0000000 --- a/public/CA/Earth_VPN_CA.crt +++ /dev/null @@ -1,44 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHrTCCBZWgAwIBAgIJAIF057Inea3QMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD -VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx -DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B -CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T -GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx -MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH -EwJOQTEMMAoGA1UEChMDTldXMQ4wDAYDVQQLEwVFYXJ0aDEVMBMGA1UEAwwMRWFy -dGhfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3ZWIu -Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3H82oeWzt5ZBoyelJhBjp8WrjE5yrR9+ -/xn118D/WXGeLMPixXmjNe9Ik0tg824DBoc3/ZHOtt8Knk32LZZhF5BF1B5H8Xgg -zx46e23tufVzUWPt+tZjV35//T/PikYUZUdCTYbYZFOuR0VwOiJBtCu0TEwQDaLe -bT9YJmAiSACKRUAT5WJwmP8mxuwW0qL5gns3Sfldq1Fvqjwa/WZQfI1uvV0GeHdd -EWiH5sTe6wtIHjXUwV/YvCsDcqk3e/Jl77QgiYwduovx/jKRCNtpBVH9yA5wsdRk -cPhAEdF8SK/8Ti/8SOChYePmIlIpbqZSO5lxyGJB+JP6Lq5gFSLX2xkTx7Z+GrlG -hiq7++PyI5S9wOsxzb+yggiX9O09n8L39cQ8t6F48AXEZpdE8jdp+jbrLUhFJ33N -HFShms92VGmEL/Hp+o4jzLkKjj8JiZtQVEfTQWiCpU2Iy8SE2soFzx2XrGS4QNkG -5Qes39dfJtPzzugXgO9LjeRECfH1o5j5gr8MfV7S0Pa9KiamTRM+qCjyLM6FgboY -XtqvGNhjZPspZCL2BePNvXMOuWQY80W2NYwpcmtQWd9NXRTOMCkBSYbaTX2gny0j -sAG8OlKz/oNjEFhuS9DYhaB2d9i/7Ye8zFGNxhX/zSXrwSFYB7ew9unACk+UMW4m -7oX3ZkaBx50CAwEAAaOCAcwwggHIMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FHofT+JsVUY8oAVJR3ijj0MxpFq8MIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 -h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ -BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL -TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l -dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh -dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQwYDVR0fBDwwOjA4oDagNIYyaHR0 -cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML0VhcnRoX1ZQTl9DQS5jcmww -SQYIKwYBBQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0 -aW5nLmNvbS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0G -CSqGSIb3DQEBCwUAA4ICAQA/Esj2AP0oM51YYuPhE1Mmknkx6Xxnn49lZim9BJEr -PMe5+M1wxlXnMklHl0AEyf59W1V6PCvlONonsOOZg/Dncm5w4AYdjeUSUxGMr6lw -kVViKkPApv1NBzw3kmJDL0CazTR3K+nl4mB9BTbOSnvGX7QUcZZ92mDxqBAiTaRb -rk8OzDW4+Lla51hSsBYuQrmRtx1jT/OZxLL6HDfM53HTLMvbFMndC2pnZL78owtp -q/V9zyyWC2fjDFGeMAv/7/0BuwfP3Ovir5OIv7C8YMrfcshgZhdt5E4mKX02TENT -x0tfNV/T/TeQGjdX85L4uYnViAA+rAlVRjE8Y0rZInnhDahI5ptpUUjSUvF0D3k1 -ZTXvCqvev4As7k0ci4mCO15LQLcQWOrirzARSR4l1OFWmlxd3zy8CBgjN8RgV0r+ -qPp1DWO/5hqKgVoBUKKAWX7cVu1FZYlxjiKqYsZHkwq5vy7ibHCSipufCWCVdU1X -dkhXhbEaS4FIA1epQNhH+GPyMxVU5uTTieSx0uvEbKvJ9UmLIGQLxBsWSgfmUKjc -xST6RlvTmKywV3ansfmYw84IxSZylpm8gT8+r5iod7lHXre1f+hESmE4lQvQ51eM -f3RjNf5W+uGtaPTGzZRN+b//kGs1pmn6Mtyr94DQCHp3LJCAVoHpFqy8PqjdlLNo -Yg== ------END CERTIFICATE----- diff --git a/public/CA/NFCCA.crt b/public/CA/NFCCA.crt deleted file mode 100644 index 5121531..0000000 --- a/public/CA/NFCCA.crt +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGFjCCBP6gAwIBAgIIB+I42RMLhBgwDQYJKoZIhvcNAQEFBQAwgdgxCzAJBgNV -BAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3Bl -Y2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRQwEgYDVQQLEwtOV1cgUm9v -dCBDQTEUMBIGA1UEAxMLTldXIFJvb3QgQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0 -aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtl -ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTMxMjIzMDAwMDAwWhcNMTgxMjIyMjM1OTU5 -WjCB2DELMAkGA1UEBhMCQVUxFjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNV -BAcTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNV -BAsTC05XVyBSb290IENBMRQwEgYDVQQDEwtORkMgUm9vdCBDQTExMC8GCSqGSIb3 -DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UE -DRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBALrz75sW0VR2qqi6UAtk2z/0GpLxlPsgGawLePfNZXvdYHcB -1JzPpAyCZ+PF4VIHz17tmdQFyN+msd2W6Op8SI5CW3MDHwA5HoAGcm6vx+xp95UX -96+fbqthL3UPNuOOW3EWXEb3DsF2wtrNXdhq4nyOMGrioe0fQvo8ij7Qg/eiFJSu -Sg3zPssa5AjsJ3P4px9kQusm2tkN9oH/1AZmE3CJXkVzqzEPbmnUzt/LD2I4Hd86 -KweNsSiBeZwrxWN7nQUla+rWE7Al+orLLnQbj14uz5Oeh+y2VnVmXxec23mebUcl -Pxy9GhxnKMF2wp6//nJs/soJKt/KEdWaMU4oW1m/rkJejjVQSvBvO89hL+4hi1iK -aoxXRnNnX6V5naXPAjlOXzDqZSnmDPk31gWL7uy7eeNY/+dCYKNk/ikstGAhfn0y -k70tUAguBf3zAewRL8JM05+HrYGdhCv/qFb+VrZEf0BgnSvq4XpVszNYJY+JePbW -smOw0/569aptCHaGtpuuvDO5F5GmtvN10NWYXRJx98txAT4SnfDHuxp/kbqlgXQF -Q+I38vVYRWfDOoakxZYESvGNlXZ12aY9RiMKp4191Los9yH16TXoERvg8Q1a1QEQ -l+fwM1iTg3RJ1WowCm6QvsU5NqVjrx0GzXCTxkd9OCjyiVwl64X9sDjYZhe3AgMB -AAGjgeEwgd4wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwQAYDVR0f -BDkwNzA1oDOgMYYvaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05X -V1Jvb3RDQS5jcmwwRwYIKwYBBQUHAQEEOzA5MDcGCCsGAQUFBzAChitodHRwOi8v -bm9mdXNzY29tcHV0aW5nLmNvbS9DQS9OV1dSb290Q0EuY3J0MB0GA1UdDgQWBBR6 -prE+wkxZU+lAqwU04QYbfTVQxjARBglghkgBhvhCAQEEBAMCBkAwDQYJKoZIhvcN -AQEFBQADggEBABV0Uw7kioLo/bUf9Bkcjq08v6zAvnjfp22u+P3USDWvjdlyBM1F -J39TOf2tAvZJ+33HzDanNL1oDw57IVw7QqIasLJRINa3gojUml6SaOT/DF0HpcJO -LN1e1x3oaQHHw5cljCFue4PRdja2z7EgsPY2qZdIdnN5CuaUI29qke8MD4cX0Ezu -KtCzkL8TWsc+QKZYodNjSwviOBIEOar1ayGAGfarqszDKHk3jG8W390BJBVtpUgL -zOyyv4SmKu+Zu090nAB91ThYYA3vnPV3Ar+tAKl0taSWNQh55jrwSA9BhrFGaRxb -huJWadC1O7ILrs72kIExzELUSDcqOhc1Nuk= ------END CERTIFICATE----- diff --git a/public/CA/NFC_Root_CA.crt b/public/CA/NFC_Root_CA.crt deleted file mode 100644 index 6f718c7..0000000 --- a/public/CA/NFC_Root_CA.crt +++ /dev/null @@ -1,43 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD -VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx -DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B -CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T -GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx -MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH -EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S -b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu -Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv -GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk -CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R -ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd -Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7 -gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu -mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8 -i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn -Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA -NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo -A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z -KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 -h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ -BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL -TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l -dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh -dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0 -cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ -BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp -bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ -KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo -NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op -bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN -/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE -QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8 -HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va -E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf -Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n -2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds -CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4 -UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu ------END CERTIFICATE----- diff --git a/public/CA/NWWRootCA.crt b/public/CA/NWWRootCA.crt deleted file mode 100644 index 34ab426..0000000 --- a/public/CA/NWWRootCA.crt +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIE3TCCA8WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCB2DELMAkGA1UEBhMCQVUx -FjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAcTDU5vdCBTcGVjaWZpZWQx -FjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNVBAsTC05XVyBSb290IENBMRQw -EgYDVQQDEwtOV1cgUm9vdCBDQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9j -a3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBD -ZXJ0aWZpY2F0ZTAeFw0xMzEyMjMwNTA1MDBaFw0yMzEyMjMwNTA1MDBaMIHYMQsw -CQYDVQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90 -IFNwZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjEUMBIGA1UECxMLTldX -IFJvb3QgQ0ExFDASBgNVBAMTC05XVyBSb290IENBMTEwLwYJKoZIhvcNAQkBFiJq -b25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3 -b3JrZWQgV2ViIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAyQqO2ehMgJt7/smhusiPQn183w//y9ZE6IZ8ylVsQ45HEI8svadYbKay -Vj4XzOl6h91asi3mGKllRq1fj7/Tekid641ew1Emt0yMbMbxCj7NW7jM3UeTNP4+ -0OtNjXKGI6A2/ciS4lQoSC7TQc37L5tr3qN6TzbtxLKfvyOIPczDbDBBtfAicw70 -71ICWjeMGJ/MASAO0RR+c77TcNFqNPkzMztyJpucQy4D+iGMDDfNfltcjd+NA5Y7 -YSUyx4hl05IIjY2FlmBwC1nLTYtEV4hWN+lDM8W0A736zo+kiP/SbryqYVUgJZoC -aJV38NRB3ksNDHELwbJAE5WDdP8KlwIDAQABo4GvMIGsMA8GA1UdEwEB/wQFMAMB -Af8wDgYDVR0PAQH/BAQDAgEGMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9ub2Z1 -c3Njb21wdXRpbmcuY29tL0NBL0NSTC9OV1dSb290Q0EuY3JsMEcGCCsGAQUFBwEB -BDswOTA3BggrBgEFBQcwAoYraHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0Ev -TldXUm9vdENBLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAL1+9V99RaFuqyzb20E9/ -DKoByMK2Q+1Mepw7CdbEQbnOtj4CiWnNA4Nw2rMOcV1dsd0WoExlW/bBHXWqS33x -x/XCODiJtmVMDqPU01DSQy74y7cQxOh2qetvsDfbdVHQryeMSZbEvvlranXkmZOB -/VgrXbrFBC8rJ5LxY+GdC93qUpyhZ/ON9iWMzq5b1nkqLSy4b8OR+gHINBWAu4Rj -fByKj3QerFf+272ADRndJXZRf376TY5DSFdolyvPVO9/S+ussnlpZP10dtlLsJ5H -rEfq+VCmSwC2YTkJNUTQvq2iOlgAQUl5UDkd2LvthO3NsZaRgVObLudfRQzV5UHO -Pg== ------END CERTIFICATE----- diff --git a/public/CA/NWWVPNCA.crt b/public/CA/NWWVPNCA.crt deleted file mode 100644 index 3c53c85..0000000 --- a/public/CA/NWWVPNCA.crt +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGADCCBOigAwIBAgIJAOdfyaftuP41MA0GCSqGSIb3DQEBBQUAMIHYMQswCQYD -VQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90IFNw -ZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjEUMBIGA1UECxMLTldXIFJv -b3QgQ0ExFDASBgNVBAMTC05XVyBSb290IENBMTEwLwYJKoZIhvcNAQkBFiJqb25h -dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr -ZWQgV2ViIENlcnRpZmljYXRlMB4XDTEzMTIyMzAwMDAwMFoXDTE4MTIyMjIzNTk1 -OVowgdYxCzAJBgNVBAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYD -VQQHEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRMwEQYD -VQQLEwpOV1cgVlBOIENBMRMwEQYDVQQDEwpOV1cgVlBOIENBMTEwLwYJKoZIhvcN -AQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQN -ExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkqhkiG9w0BAQEFAAOC -Ag8AMIICCgKCAgEAwZz2VgcS6fxoPnwUV3RjCUQbtSsZA9tFN9OuB60lQ82g70py -lBiX1oM46tCMADtogri4N1QVNvqpn2ibpfmSof4+0u5OLU0TD8t50MaVit2r74g0 -lHFxPungIFaXcaONQzdXkyvUOkuOQyLZWsOZT7rvt23ojZWeHyqZYeLjHRLeM8Pd -Hht+S/07PMiEirt5ah61qEr5tm1Q15BS9RMMhqyd0tDacX4mn/cKPwiTx8gwVh2I -hw+sEco6pZezmPO6pZjYboz1SviWGNVlHa08+hn+MvbSBqiUVy4Ebvg0YBiobudH -6mW86n6k0Fbhl/Nx80J6w6kY12GKoOmLWH3F4xW7+t12knGc/pBwA6A0bjS0VxUN -OXxHhvA7BF04QtG80l4HfZqMKVZzotj2pL7WG64DGARMjRO4U5+o7Slry0R+iI47 -wsvkGvkq5MMdB7AEeSFH4+ykowyYAmL1lqjW+3W7NKAWIvRmGn6Z4pbKvvo0nS7J -dMcrpu57MBwJ88ExnLhLfgq0K+8hBBf8OKuYferXMRZmrcQGZIG46rxYkS4fTxiP -kk0o6VOqg3YcgH5euLk83v0xPy4pb1YE3s1bfe23bq5NEpEOJynqMCk0T8dUGybG -SbuxfXAEZuVxr33WcmlSokDz9H/fk30I6Rnb3mV5C8ab8LUtuXt55333musCAwEA -AaOBzDCByTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA/BgNVHR8E -ODA2MDSgMqAwhi5odHRwOi8vbm9mdXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldX -VlBOQ0EuY3JsMEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAoYqaHR0cDovL25v -ZnVzc2NvbXB1dGluZy5jb20vQ0EvTldXVlBOQ0EuY3J0MB0GA1UdDgQWBBS6auHS -OpuvAE/jfGPgdfc3+cLFGDANBgkqhkiG9w0BAQUFAAOCAQEAt+TemCvfM7MwTQ9G -EroZKi5Pr40UEvs0J+jZ8N/NtpOStZUDeH3gUjWZhr+iMKJVu/GtAX/IWP6IBbBo -wH8xJCuWoZV6H2MdKc8YEoaEiwZ9N3THrYqOrqDO7nw3ORNZ4O+sEd3u/IRa63Ha -uXmBMEdn+Llinpn6IKJMBCP1nYDfQ4A57O5G+KgBw0Hpx1BZQaluKFW1phTx2feZ -lbaXY2TzWtCtdUciMiFbaeTvBLzKpThdOXwrzmw06Y4ZfR2Lp8JIlb6NO6mQzooV -liiufiQGSjvl+y+jPe6ml/f6uFYVBenP1MhLneCZQC+xvReXpG1L0MCMwqz4Ixhe -y2LnYw== ------END CERTIFICATE----- diff --git a/public/CA/NWW_Root_CA.crt b/public/CA/NWW_Root_CA.crt deleted file mode 100644 index 6ed8a02..0000000 --- a/public/CA/NWW_Root_CA.crt +++ /dev/null @@ -1,43 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHpTCCBY2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMCQVUx -CzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQL -EwNOV1cxFDASBgNVBAMMC05XV19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25h -dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr -ZWQgV2ViIENlcnRpZmljYXRlMB4XDTE3MTIyMTAwMDAwMFoXDTI3MTIyMDIzNTk1 -OVowgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAK -BgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTEx -MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv -bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBANNh/YQ88bqyR2569AwMnqe+9VjeUoFQcGgr -JjcS76lZaAERnbl49PJM6X9xcFBQoCD3S1WnNXL26ZtA+PKdfvZOL8GIkwZQrXNB -Ts2f4VP1dahuxuHYlmlwlpdT84JKZlDloUrDOgx0D707Z+ybUrTFjqaQjp/ZfybQ -QLiYfK/6v7K7rOh8WyeWWunDo8uYlZWmtmzAQU9IQimYWepZ4/O+yfWnUVRGvYMD -daALrNaj5MO41J13Y5sXDdl++yTCbujJ+xTDHKfjoJ+KpEuLa8VzWjJYAjm+TSXK -gWObOxpnrb4sW2bB2pPtwQoOKd3tXYW2bRKJHGt2pVzgyGUjZ1yGKFS04+cg9OpP -ePFtS4aTKVTMIe7BHwPA1fhu2efqmfP0vSY0EmRHuk9GIqo1r5EiC94xOcAuLkPG -RquMQr+moD27JrhhlF9vw/Z9pr6gZ+hUDYGbE0913F1mjdtYp1lBmaLysLwpI0lH -PUZdFdejCbnvPfH9EVxNRgbM5J/yzfRB//QRnufpjC2OgB6zTnifsYIOOSYHYgCK -4DLrin74j4YiUGm49wuTwdqk52B8bkDzx4cWwIpJWYIeQC2xMrR/RvdrDMxt1Frg -k5es0NHMWAzd2C2PRS2fmvuUdq2+QZRe721TvoeFLMI05PnUrxOkz/din8BNWtsN -AoBCi3FdAgMBAAGjggHGMIIBwjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRI -6WaWbdVLxOTffYdPlqd7zAw+7TCB3QYDVR0jBIHVMIHSgBRI6WaWbdVLxOTffYdP -lqd7zAw+7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYD -VQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05X -V19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3 -b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRl -ggEBMA4GA1UdDwEB/wQEAwIBBjBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vbm9m -dXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldXX1Jvb3RfQ0EuY3JsMEkGCCsGAQUF -BwEBBD0wOzA5BggrBgEFBQcwAoYtaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20v -Q0EvTldXX1Jvb3RfQ0EuY3J0MBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0B -AQsFAAOCAgEARpj46yWBnbJIfqh7V9c1AWZmbzqogJynp5AqyC2e8Rp59dpPKJ60 -BC2WVUMsCHqyhl6oZwmn2Ejud+iodGo4IwdgDneFvQQAiF7TVTBnBRHnup3rLtTX -zvqIBPyqBmrvZSjSfG0mStb3YWS41yj9bhsqy1qRTdXS+Ghc4I1DcOWu62NbhbP/ -UHPUEwCyPxEWLtxk0u8N8Hqmlr3qHHM53cKaOUUIn6VMtq2S0o39xWt7QuHWe3Aa -COQYaAVQ60f9cZUmw7h31d3oen7nrlaaDAp7i1e4HuTb8+PzetoGjJ8xCt4cbnp0 -ThQFdVuaLszSiHpmsKPvdazIVjhvT7CTM5EydsDHZFA6cMmWjYYm5f9MXbiCSebC -2q+2W2vO92yd/8JE3JCRc8A2Mi4RSw9SziN/MCvueorIFJXfawz3rARgk5KXKPNj -DBHcxxaQOTCJHLblGsv+9S/ANnucOihQRPWPGKGr80Yy5wQ8TKnuElvzrOjyR2Cj -HGqSX2ar1GnFtmDsfamnJ0kb+2Sbamt3slAxUM/Qc+SIWepVtSNb8IppWPCxmPOd -QyUMRayfkkc2qdo3xyUV1zE/alMPK6k0epyZ0+lyTo+sVpyzVq/D1wS63pUXiK/f -gB5/XW5AC1ngeN3DBlOc/R5mscyv4o4cHOauxMKjldGgGhqI0QnRSi4= ------END CERTIFICATE----- diff --git a/public/CA/Pegasus_VPN_CA.crt b/public/CA/Pegasus_VPN_CA.crt deleted file mode 100644 index 1d098b9..0000000 --- a/public/CA/Pegasus_VPN_CA.crt +++ /dev/null @@ -1,43 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHpzCCBY+gAwIBAgIINsj7HlzAfYswDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNV -BAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEM -MAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJ -ARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZ -TmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTAeFw0xNTEwMjcwMDAwMDBaFw0yMDEw -MjYyMzU5NTlaMIGjMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcT -Ak5BMQwwCgYDVQQKEwNOV1cxEDAOBgNVBAsTB1BlZ2FzdXMxFzAVBgNVBAMMDlBl -Z2FzdXNfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3 -ZWIuY29tMRcwFQYDVQQNDA5QZWdhc3VzX1ZQTl9DQTCCAiIwDQYJKoZIhvcNAQEB -BQADggIPADCCAgoCggIBAMjkj6nShoH9YfKCa8MbQFV0dqkoHuuv11W7IcvL4isR -NrLshe8zlB3v9cGsaWot9zu+tbcX71SW+2vdlCTuNerdlOQIiMntjkbHPG8iwjZu -WHpu/DqZv9BJjfIuCWWb3eTw6DuvQTo3Lwauh7z/Vp8IKPmoloAVnj8rZizVqWxV -cJwPD3vKJAKtbtZkfC7dgWFPRWTtX26DVV/EmhICinE/KmkfckLxKdkpuyejiHz8 -uduweS9Wfj21mgsWKeSYkzONGr04YmYxCLWGqyqwQ+ZsNRJWdRFBHKwKwH3k01I8 -Ce6/tpNZYQLYykUHTCpjHW4UuvkXFo2SK9ilJ5bUze5qedYrFMXsGJoWgw+xCYtZ -QkFQmFNXFk1oplVwK/8Jnn3mfEpsbtQBW4RAyOTETRlWpe+n+/BgZNPdncODXWN0 -Gvtg4guxftdNesXd+6e4R7tC2GX8sqxOzNji64KxAoiMPK0qwhyFKegD7iuMC/LC -D2KhFNxjRHkJIe1MfvPAZPygiQYPbNatVLzRSaS8Uj132IUfqqCPyrKNg/rJb6Yh -Ovlf/jEMUaEzH9xUmlOEiKf2yyXrw6vTWhtkYCNCyronLblFc+NiwSzCxcINMlX+ -hj8zg49wQC/80QjwdHbz2KP9sLzFtuURFjRdpfYFaiI7iWapo+eHYq6OKq4nH1Z1 -AgMBAAGjggHOMIIByjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRBbMbXhzlI -dbRsB2xNIPbP2kCbETCB4gYDVR0jBIHaMIHXgBRI6WaWbdVLxOTffYdPlqd7zAw+ -7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO -QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290 -X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3 -ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlggYgFRAn -FiYwDgYDVR0PAQH/BAQDAgEGMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9ub2Z1 -c3Njb21wdXRpbmcuY29tL0NBL0NSTC9QZWdhc3VzX1ZQTl9DQS5jcmwwSQYIKwYB -BQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0aW5nLmNv -bS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3 -DQEBCwUAA4ICAQCGuevjkXLiEC03sX0Iu1oV8IgrRv76agQseJs/s+xBJ2NznjT8 -xsZX7QmpAJ1tdOtiwQwggF04KHj6rlt0PbA2MHjz1uB148pep8DpF/z+iCW8exA8 -iIBjRK9A339Q8gM8jJRBoz6I3Ipwkx+06+DWs73fwW2Y1PgHg445GB1ToN3cKS54 -YomZUA1yagdBiDXriPReFQPBTk18dyA8ZIoVse1J4HgGr5i+5for6IK1C7w2UoTh -55sEP44VskYpAZCaCd531OVgruw+SixhOJbHS/j/smN1WinLEptBKi7LY+nLJtiE -BEDiexeXwlfZWBTSs34yDIn8JBtOLYd1Ur/kB/j4Wbs7xT9RJ1VhTDFZcOB3rREj -comhcuWsbQegdt9M0DWZdriZzgzGQBm5dqFnp6FAG4tOjAGr24TP6tsq9sbS1Eyk -5snwE70mTQ9bCDFU4Re+bVfAIFDfY9HF822ZgMdy1BQw/S5a2YoRMZtYaZFGYidp -VNk/ICnl6ELlg6ZlPAiAn2PaBICTtzlt/TpznAFEvxlvc7tsc0HsDKVT0n+T8wv3 -yp0rbgrQrJlI+Z9nl+g3ZHDc9mQXbcIWBkUFUoIsTUwdGExXypWDIlQ86pqyLFnl -42BzmL9mpf862aHybxCBOEre2uBUhFGWTTjNm7kjItM5SGQGUq7EAd1p6w== ------END CERTIFICATE----- diff --git a/public/CA/certs/236498e823d880414b763cd9cc813ef1fceecbf8.crt b/public/CA/certs/236498e823d880414b763cd9cc813ef1fceecbf8.crt deleted file mode 100644 index bcaab0f..0000000 --- a/public/CA/certs/236498e823d880414b763cd9cc813ef1fceecbf8.crt +++ /dev/null @@ -1,44 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHrzCCBZegAwIBAgIGIBUQJxYmMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYDVQQG -EwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAK -BgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEW -ImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5l -dHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjUxMDI2 -MjM1OTU5WjCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO -QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290 -X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3 -ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA02H9hDzxurJHbnr0DAyep771WN5S -gVBwaCsmNxLvqVloARGduXj08kzpf3FwUFCgIPdLVac1cvbpm0D48p1+9k4vwYiT -BlCtc0FOzZ/hU/V1qG7G4diWaXCWl1PzgkpmUOWhSsM6DHQPvTtn7JtStMWOppCO -n9l/JtBAuJh8r/q/srus6HxbJ5Za6cOjy5iVlaa2bMBBT0hCKZhZ6lnj877J9adR -VEa9gwN1oAus1qPkw7jUnXdjmxcN2X77JMJu6Mn7FMMcp+Ogn4qkS4trxXNaMlgC -Ob5NJcqBY5s7GmetvixbZsHak+3BCg4p3e1dhbZtEokca3alXODIZSNnXIYoVLTj -5yD06k948W1LhpMpVMwh7sEfA8DV+G7Z5+qZ8/S9JjQSZEe6T0YiqjWvkSIL3jE5 -wC4uQ8ZGq4xCv6agPbsmuGGUX2/D9n2mvqBn6FQNgZsTT3XcXWaN21inWUGZovKw -vCkjSUc9Rl0V16MJue898f0RXE1GBszkn/LN9EH/9BGe5+mMLY6AHrNOeJ+xgg45 -JgdiAIrgMuuKfviPhiJQabj3C5PB2qTnYHxuQPPHhxbAiklZgh5ALbEytH9G92sM -zG3UWuCTl6zQ0cxYDN3YLY9FLZ+a+5R2rb5BlF7vbVO+h4UswjTk+dSvE6TP92Kf -wE1a2w0CgEKLcV0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFEjpZpZt1UvE5N99h0+Wp3vMDD7tMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE -5N99h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkEx -CzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UE -AwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29k -QG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlm -aWNhdGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQYwQgYDVR0fBDswOTA3oDWgM4Yx -aHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05XV19Sb290X0NBLmNy -bDBJBggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21w -dXRpbmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCAAcw -DQYJKoZIhvcNAQELBQADggIBAEp6g8NTXc89vngaI6Hu3FcLcsYwfcC3UvqUPCXS -W7qqc8GqR0p+n6FZWrMyAGVSjT/CXPZH6GZoTgkJK9g46YcWc1LhUIwnzj7dl3Gb -FAU1VRnc2PNYI2VxUbDLjAzxDPO5q93L1F/N4JYgamCCRDYqcUcg9uUrDxS9fz0G -JZaKDtmxelAb/TOo9jfRYzXmdCdzaZUi838UwfLYDoovBn+CTpWeKg+qs36ViK4H -qMRaHbPBAappJoxzWOQq9CBv9HGZ7GYpMrtE9Cwg0RyJyH6CHDTum6A3O9oa7Buu -zh36WAl1tXbJ/waW5RkS7/SIosWzi+SbASEeOY3X5jnvjFkSVZlQbNDfOzQkDAMW -3JXfBBWG0fCXFSBJxPpVUV4dSkhZFyFZUDmKTnbqyM10DFEh+MFpEIOShXDoqbdx -1hvaBlBzgbi46xQPRptdsw+Eo6LiYSBUJIuSB7WBzNxpcIqZDiNZgXC4useuBdOm -QEGT3KPPpRfhneEz5f7v4e8YGHbbkvv/F7OcHXNX3tQ8T7u7d8cCsiGDoFtpEISQ -qs68fxeGNUdnA13INl5G5iGkXlVLh+hiTdlObFO2lqHXzv8RL3+ZtSkzbsVEC1CK -p4AlmeUn6vRoUvLtrm5REF7GVKB1NjyKJV8JP+DGyoiR9JUVmsqvFj5eCejANGEs -Nwdl ------END CERTIFICATE----- diff --git a/public/CA/certs/9c7f3ab4d51614749a1d1171a4433fc000499922.crt b/public/CA/certs/9c7f3ab4d51614749a1d1171a4433fc000499922.crt deleted file mode 100644 index 34ab426..0000000 --- a/public/CA/certs/9c7f3ab4d51614749a1d1171a4433fc000499922.crt +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIE3TCCA8WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCB2DELMAkGA1UEBhMCQVUx -FjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAcTDU5vdCBTcGVjaWZpZWQx -FjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNVBAsTC05XVyBSb290IENBMRQw -EgYDVQQDEwtOV1cgUm9vdCBDQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9j -a3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBD -ZXJ0aWZpY2F0ZTAeFw0xMzEyMjMwNTA1MDBaFw0yMzEyMjMwNTA1MDBaMIHYMQsw -CQYDVQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90 -IFNwZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjEUMBIGA1UECxMLTldX -IFJvb3QgQ0ExFDASBgNVBAMTC05XVyBSb290IENBMTEwLwYJKoZIhvcNAQkBFiJq -b25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3 -b3JrZWQgV2ViIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAyQqO2ehMgJt7/smhusiPQn183w//y9ZE6IZ8ylVsQ45HEI8svadYbKay -Vj4XzOl6h91asi3mGKllRq1fj7/Tekid641ew1Emt0yMbMbxCj7NW7jM3UeTNP4+ -0OtNjXKGI6A2/ciS4lQoSC7TQc37L5tr3qN6TzbtxLKfvyOIPczDbDBBtfAicw70 -71ICWjeMGJ/MASAO0RR+c77TcNFqNPkzMztyJpucQy4D+iGMDDfNfltcjd+NA5Y7 -YSUyx4hl05IIjY2FlmBwC1nLTYtEV4hWN+lDM8W0A736zo+kiP/SbryqYVUgJZoC -aJV38NRB3ksNDHELwbJAE5WDdP8KlwIDAQABo4GvMIGsMA8GA1UdEwEB/wQFMAMB -Af8wDgYDVR0PAQH/BAQDAgEGMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9ub2Z1 -c3Njb21wdXRpbmcuY29tL0NBL0NSTC9OV1dSb290Q0EuY3JsMEcGCCsGAQUFBwEB -BDswOTA3BggrBgEFBQcwAoYraHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0Ev -TldXUm9vdENBLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAL1+9V99RaFuqyzb20E9/ -DKoByMK2Q+1Mepw7CdbEQbnOtj4CiWnNA4Nw2rMOcV1dsd0WoExlW/bBHXWqS33x -x/XCODiJtmVMDqPU01DSQy74y7cQxOh2qetvsDfbdVHQryeMSZbEvvlranXkmZOB -/VgrXbrFBC8rJ5LxY+GdC93qUpyhZ/ON9iWMzq5b1nkqLSy4b8OR+gHINBWAu4Rj -fByKj3QerFf+272ADRndJXZRf376TY5DSFdolyvPVO9/S+ussnlpZP10dtlLsJ5H -rEfq+VCmSwC2YTkJNUTQvq2iOlgAQUl5UDkd2LvthO3NsZaRgVObLudfRQzV5UHO -Pg== ------END CERTIFICATE----- diff --git a/public/CA/certs/A9B29700FF9E229EA866C1F718E2ED73DE5FC38E.crt b/public/CA/certs/A9B29700FF9E229EA866C1F718E2ED73DE5FC38E.crt deleted file mode 100644 index e882d8a..0000000 --- a/public/CA/certs/A9B29700FF9E229EA866C1F718E2ED73DE5FC38E.crt +++ /dev/null @@ -1,127 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHDTCCBPWgAwIBAgIJAMTrJAQHdlFyMA0GCSqGSIb3DQEBCwUAMIGqMQswCQYD -VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx -DDAKBgNVBAsTA05GQzEUMBIGA1UEAwwLTkZDX1Jvb3RfQ0ExKzApBgkqhkiG9w0B -CQEWHGhlbHBkZXNrQG5vZnVzc2NvbXB1dGluZy5jb20xIjAgBgNVBA0TGU5ldHdv -cmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTYwMTA5MDAzNjAwWhcNMTgwMTA5MDAz -NjAwWjCBxjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEM -MAoGA1UEChMDTkZDMRAwDgYDVQQLEwdXZWJzaXRlMRwwGgYDVQQDExNub2Z1c3Nj -b21wdXRpbmcuY29tMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21w -dXRpbmcuY29tMTIwMAYDVQQNEylObyBGdXNzIENvbXB1dGluZyBXZWJzaXRlIFNT -TCBDZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAw -LqkN8ck9UoYApC1yNYXmq3kydkb8JwmbzbEZ7H6ZBffVzx6D7lBiyLwzS5nClYpM -F89q/D9q0x2k0oVckpNA8CqDjH69CojBtCAbTDM/tHBjrKir3pyg66rgCn5PIAJF -TEWTilLyDxXewiD6rNoxYChVvQYWjV3eV2IcnmwU6Yv9s5HvNzu2iMbJTxfFyeE0 -vgkRLBkqTBpYiTnc4m9OgPYJB7f4drQ0cibZ7ySDBlDvQM792PLtBokTAikQ+Uu6 -UkOpBVaeP/mnbF3WogL3ntjcXpX4JieMG2YAaKb3RynqZeX+oUvgz9K5hOjDgpGp -hswm8w677iAah1kaSYkCAwEAAaOCAhYwggISMAkGA1UdEwQCMAAwHQYDVR0OBBYE -FPOkMiFouKGtFmcsI4HvmWydR/hEMIHlBgNVHSMEgd0wgdqAFMcOta68Bn/QtEwc -LCCyoJvOSmSNoYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ -BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL -TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l -dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh -dGWCCQDF7SYBL2xH+zALBgNVHQ8EBAMCA+gwEwYDVR0lBAwwCgYIKwYBBQUHAwEw -OgYDVR0RBDMwMYIaZGVwbG95Lm5vZnVzc2NvbXB1dGluZy5jb22CE25vZnVzc2Nv -bXB1dGluZy5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL25vZnVzc2NvbXB1 -dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJBggrBgEFBQcBAQQ9MDsw -OQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL05GQ19S -b290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJKoZIhvcNAQELBQADggIB -AEC5mlLoGmAvFEf6dQ0yR+W/YPrW2qmZfIEtcfGq0u4Ik0W2pgBbHiXI4hhXLx3F -fMxwzFI69ab2qWhl37VrwViLtPDLp7f3nJbN+cURJfbYTXbt5ktqxAq5JpUO8caL -hJpJLuslcKCzb9Vpw6FbojLhWu44v0gcYiPemROrwbcTtaDo1qRHpxHN6am/GnY6 -+hZBtQV0STRHw+BESVAyjmuurMBGCTKIZ5SZ2oGkqWrGoNgRsIN1e1nE5rsJDHG0 -7mPMRfSa7Ll3B5tYXZ7M3H2MWDWtOg2AKrB6U1WoA7cEuHg8lV8PFpIvfjkqu6DJ -wx4X1NUBi8D5x/VCGpopvyZBSFkqeQTEZ+vQ3NfC1pOw6f8iwhdJGBqQeCY8AWFU -XKljEjSm8zleCsSLa24tOL+1WvcAZqjtoeN/E2VYMmHi2UdyIFFiZz3P2M5hL/dp -PgokHF0d/LuoEmdFv9ki5fj61VrldUsX8eg0CKgd+BiwobjlJFmPRKJX2d9ZE+rU -rJT8uHehioXmW1NK43QiBCgd3H54IpDl9HByNpF343sjvGX0Y0a+6D6pa1BJhVPw -9vLCeSKSUuI6XDtLGhGpkc5c4m6pChITzjCPQld/LvbxnQ6mhTtylBy8edixDRld -0bPU2pK43UcWEWQwOQG53Te5XVBmQ312WRuwp7U8Sfi0 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD -VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx -DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B -CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T -GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx -MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH -EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S -b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu -Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv -GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk -CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R -ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd -Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7 -gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu -mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8 -i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn -Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA -NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo -A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z -KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 -h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ -BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL -TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l -dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh -dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0 -cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ -BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp -bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ -KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo -NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op -bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN -/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE -QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8 -HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va -E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf -Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n -2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds -CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4 -UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIHrzCCBZegAwIBAgIGIBUQJxYmMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYDVQQG -EwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAK -BgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEW -ImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5l -dHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjUxMDI2 -MjM1OTU5WjCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO -QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290 -X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3 -ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA02H9hDzxurJHbnr0DAyep771WN5S -gVBwaCsmNxLvqVloARGduXj08kzpf3FwUFCgIPdLVac1cvbpm0D48p1+9k4vwYiT -BlCtc0FOzZ/hU/V1qG7G4diWaXCWl1PzgkpmUOWhSsM6DHQPvTtn7JtStMWOppCO -n9l/JtBAuJh8r/q/srus6HxbJ5Za6cOjy5iVlaa2bMBBT0hCKZhZ6lnj877J9adR -VEa9gwN1oAus1qPkw7jUnXdjmxcN2X77JMJu6Mn7FMMcp+Ogn4qkS4trxXNaMlgC -Ob5NJcqBY5s7GmetvixbZsHak+3BCg4p3e1dhbZtEokca3alXODIZSNnXIYoVLTj -5yD06k948W1LhpMpVMwh7sEfA8DV+G7Z5+qZ8/S9JjQSZEe6T0YiqjWvkSIL3jE5 -wC4uQ8ZGq4xCv6agPbsmuGGUX2/D9n2mvqBn6FQNgZsTT3XcXWaN21inWUGZovKw -vCkjSUc9Rl0V16MJue898f0RXE1GBszkn/LN9EH/9BGe5+mMLY6AHrNOeJ+xgg45 -JgdiAIrgMuuKfviPhiJQabj3C5PB2qTnYHxuQPPHhxbAiklZgh5ALbEytH9G92sM -zG3UWuCTl6zQ0cxYDN3YLY9FLZ+a+5R2rb5BlF7vbVO+h4UswjTk+dSvE6TP92Kf -wE1a2w0CgEKLcV0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFEjpZpZt1UvE5N99h0+Wp3vMDD7tMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE -5N99h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkEx -CzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UE -AwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29k -QG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlm -aWNhdGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQYwQgYDVR0fBDswOTA3oDWgM4Yx -aHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05XV19Sb290X0NBLmNy -bDBJBggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21w -dXRpbmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCAAcw -DQYJKoZIhvcNAQELBQADggIBAEp6g8NTXc89vngaI6Hu3FcLcsYwfcC3UvqUPCXS -W7qqc8GqR0p+n6FZWrMyAGVSjT/CXPZH6GZoTgkJK9g46YcWc1LhUIwnzj7dl3Gb -FAU1VRnc2PNYI2VxUbDLjAzxDPO5q93L1F/N4JYgamCCRDYqcUcg9uUrDxS9fz0G -JZaKDtmxelAb/TOo9jfRYzXmdCdzaZUi838UwfLYDoovBn+CTpWeKg+qs36ViK4H -qMRaHbPBAappJoxzWOQq9CBv9HGZ7GYpMrtE9Cwg0RyJyH6CHDTum6A3O9oa7Buu -zh36WAl1tXbJ/waW5RkS7/SIosWzi+SbASEeOY3X5jnvjFkSVZlQbNDfOzQkDAMW -3JXfBBWG0fCXFSBJxPpVUV4dSkhZFyFZUDmKTnbqyM10DFEh+MFpEIOShXDoqbdx -1hvaBlBzgbi46xQPRptdsw+Eo6LiYSBUJIuSB7WBzNxpcIqZDiNZgXC4useuBdOm -QEGT3KPPpRfhneEz5f7v4e8YGHbbkvv/F7OcHXNX3tQ8T7u7d8cCsiGDoFtpEISQ -qs68fxeGNUdnA13INl5G5iGkXlVLh+hiTdlObFO2lqHXzv8RL3+ZtSkzbsVEC1CK -p4AlmeUn6vRoUvLtrm5REF7GVKB1NjyKJV8JP+DGyoiR9JUVmsqvFj5eCejANGEs -Nwdl ------END CERTIFICATE----- diff --git a/public/CA/certs/ac355ad0a3d470d1f1608566c48df94b9da5f308.crt b/public/CA/certs/ac355ad0a3d470d1f1608566c48df94b9da5f308.crt deleted file mode 100644 index 6f718c7..0000000 --- a/public/CA/certs/ac355ad0a3d470d1f1608566c48df94b9da5f308.crt +++ /dev/null @@ -1,43 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD -VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx -DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B -CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T -GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx -MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH -EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S -b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu -Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv -GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk -CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R -ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd -Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7 -gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu -mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8 -i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn -Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA -NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo -A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z -KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 -h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ -BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL -TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l -dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh -dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0 -cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ -BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp -bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ -KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo -NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op -bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN -/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE -QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8 -HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va -E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf -Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n -2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds -CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4 -UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu ------END CERTIFICATE----- diff --git a/public/CA/certs/d8c674f8bf82d0aea70e05aafc8ddddbab9bab56.crt b/public/CA/certs/d8c674f8bf82d0aea70e05aafc8ddddbab9bab56.crt deleted file mode 100644 index 5121531..0000000 --- a/public/CA/certs/d8c674f8bf82d0aea70e05aafc8ddddbab9bab56.crt +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGFjCCBP6gAwIBAgIIB+I42RMLhBgwDQYJKoZIhvcNAQEFBQAwgdgxCzAJBgNV -BAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3Bl -Y2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRQwEgYDVQQLEwtOV1cgUm9v -dCBDQTEUMBIGA1UEAxMLTldXIFJvb3QgQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0 -aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtl -ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTMxMjIzMDAwMDAwWhcNMTgxMjIyMjM1OTU5 -WjCB2DELMAkGA1UEBhMCQVUxFjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNV -BAcTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNV -BAsTC05XVyBSb290IENBMRQwEgYDVQQDEwtORkMgUm9vdCBDQTExMC8GCSqGSIb3 -DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UE -DRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBALrz75sW0VR2qqi6UAtk2z/0GpLxlPsgGawLePfNZXvdYHcB -1JzPpAyCZ+PF4VIHz17tmdQFyN+msd2W6Op8SI5CW3MDHwA5HoAGcm6vx+xp95UX -96+fbqthL3UPNuOOW3EWXEb3DsF2wtrNXdhq4nyOMGrioe0fQvo8ij7Qg/eiFJSu -Sg3zPssa5AjsJ3P4px9kQusm2tkN9oH/1AZmE3CJXkVzqzEPbmnUzt/LD2I4Hd86 -KweNsSiBeZwrxWN7nQUla+rWE7Al+orLLnQbj14uz5Oeh+y2VnVmXxec23mebUcl -Pxy9GhxnKMF2wp6//nJs/soJKt/KEdWaMU4oW1m/rkJejjVQSvBvO89hL+4hi1iK -aoxXRnNnX6V5naXPAjlOXzDqZSnmDPk31gWL7uy7eeNY/+dCYKNk/ikstGAhfn0y -k70tUAguBf3zAewRL8JM05+HrYGdhCv/qFb+VrZEf0BgnSvq4XpVszNYJY+JePbW -smOw0/569aptCHaGtpuuvDO5F5GmtvN10NWYXRJx98txAT4SnfDHuxp/kbqlgXQF -Q+I38vVYRWfDOoakxZYESvGNlXZ12aY9RiMKp4191Los9yH16TXoERvg8Q1a1QEQ -l+fwM1iTg3RJ1WowCm6QvsU5NqVjrx0GzXCTxkd9OCjyiVwl64X9sDjYZhe3AgMB -AAGjgeEwgd4wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwQAYDVR0f -BDkwNzA1oDOgMYYvaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05X -V1Jvb3RDQS5jcmwwRwYIKwYBBQUHAQEEOzA5MDcGCCsGAQUFBzAChitodHRwOi8v -bm9mdXNzY29tcHV0aW5nLmNvbS9DQS9OV1dSb290Q0EuY3J0MB0GA1UdDgQWBBR6 -prE+wkxZU+lAqwU04QYbfTVQxjARBglghkgBhvhCAQEEBAMCBkAwDQYJKoZIhvcN -AQEFBQADggEBABV0Uw7kioLo/bUf9Bkcjq08v6zAvnjfp22u+P3USDWvjdlyBM1F -J39TOf2tAvZJ+33HzDanNL1oDw57IVw7QqIasLJRINa3gojUml6SaOT/DF0HpcJO -LN1e1x3oaQHHw5cljCFue4PRdja2z7EgsPY2qZdIdnN5CuaUI29qke8MD4cX0Ezu -KtCzkL8TWsc+QKZYodNjSwviOBIEOar1ayGAGfarqszDKHk3jG8W390BJBVtpUgL -zOyyv4SmKu+Zu090nAB91ThYYA3vnPV3Ar+tAKl0taSWNQh55jrwSA9BhrFGaRxb -huJWadC1O7ILrs72kIExzELUSDcqOhc1Nuk= ------END CERTIFICATE----- diff --git a/public/CA/public/Developer-jonathon.lockwood.crt b/public/CA/public/Developer-jonathon.lockwood.crt deleted file mode 100644 index 2f03109..0000000 --- a/public/CA/public/Developer-jonathon.lockwood.crt +++ /dev/null @@ -1,47 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIIWjCCBkKgAwIBAgIGIBUQJxYoMA0GCSqGSIb3DQEBCwUAMIGqMQswCQYDVQQG -EwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAK -BgNVBAsTA05GQzEUMBIGA1UEAwwLTkZDX1Jvb3RfQ0ExKzApBgkqhkiG9w0BCQEW -HGhlbHBkZXNrQG5vZnVzc2NvbXB1dGluZy5jb20xIjAgBgNVBA0TGU5ldHdvcmtl -ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDU0NjAwWhcNMTYxMDI2MDU0NjAw -WjCB3zELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoG -A1UEChMDTkZDMRwwGgYDVQQLExNTb2Z0d2FyZS1EZXBhcnRtZW50MSQwIgYDVQQD -ExtEZXZlbG9wZXItam9uYXRob24ubG9ja3dvb2QxKzApBgkqhkiG9w0BCQEWHGhl -bHBkZXNrQG5vZnVzc2NvbXB1dGluZy5jb20xNzA1BgNVBA0TLkNlcnRpZmljYXRl -IHVzZWQgYnkgZGV2ZWxvcGVyIGZvciBORkMgU29mdHdhcmUwggIiMA0GCSqGSIb3 -DQEBAQUAA4ICDwAwggIKAoICAQCwEhy6BgG/XCGu1REUIhSHh95flBwiyBxf9yaF -KTkkGSY70AfMOvPtzfrf6qdHRySJWhMToVWh/X2gbjuPZUbPQJHEhpk1C154yDVD -g6t4Q0pyULBSHxdKxanNm0O6CfrXoDR9EmR6c+Ymy6+aD/KYQork/UKfZRzHPBwV -klNiEHE2C7lGScjlW0k9DNChdeO2O7Y5XYMY47NFKDsdMxIankmpiTzGiBGrulQq -RwuhJy8r5u26UzBJRQBxfm4Q9jT273ZVKK9cu3+zbb3s0ye4XvOM8zkgz24kXbiF -r7RvC4B5GxHoaBDXDUigKqv8g8XkLS+Rs2Ja+6KDZh6XPtvEZYQ48TsTqKmUH1++ -Tmyri3yg2WLYxOpzs8Qllp/O/1nH47U+2JkOxAI4HwleIg71mb+uF/jVBz/CweQF -LPPDo0k5NfYtMvWR+Veq+P9q2UGs6jgGmAghndQZfe01VxHkiaqwOraeTHn/JfXh -FlZIfalTap/lDK7aCJA0U0mJP554Vms2KgQK1YksojCxuXShR5A6VLK8CtSWXOh0 -Iwje5oPPNm2DYgRjbSPl4Q509EOCOMlC6ykUt04cuB1pgYrlXNnv3+oNzcpfOhhT -JOsX1rTxYYhZ+EmmQvOUEPWHPPClRqHOPN7PsaxI4EEFCIKfdEVWOEE1KJ8RmBmk -6VAoHwIDAQABo4ICTTCCAkkwCQYDVR0TBAIwADAdBgNVHQ4EFgQU9ihwzGTLPCqA -4CbMavWmtVLwHlowgeIGA1UdIwSB2jCB14AUxw61rrwGf9C0TBwsILKgm85KZI2h -gbakgbMwgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkEx -DDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9D -QTExMC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2Vi -LmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZYIGIBUQJxYn -MBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMDMEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6 -Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL0NSTC9ORkNfUm9vdF9DQS5jcmwwSQYI -KwYBBQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0aW5n -LmNvbS9DQS9ORkNfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgQQMD4GCWCG -SAGG+EIBAwQxFi9VUkk6aHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JM -L05GQ0NBLmNybDA+BglghkgBhvhCAQQEMRYvVVJJOmh0dHA6Ly9ub2Z1c3Njb21w -dXRpbmcuY29tL0NBL0NSTC9ORkNDQS5jcmwwDQYJKoZIhvcNAQELBQADggIBAETg -cMO9sC4hm6RIAdcKWlSAPD7+u5I+cxY0k7TRljSxGMu8WbzQU39wkEqK5PCgT0qm -Up0qFdc3osO19UfXJj67jI6450dB1LDHGa9ymuaXkTVEOUGeYPJ/a5UpJKN+PJPy -liPG3BP+6EvILMm0qd5EIvrmeAJtNtWEi6Y2Kkb8QAliSlovtsjHmbW0Mz1AzeQm -l9V/xOXbdQnp7A15T41XUoR5V6AJ9yraCMafFL/GaE2IXkIoUEpVb55hobsdAkwt -yjEZBxyv6A81t3v0HEpkEmyn6anmjCi3sLCKWzK0dTLL+8OyxUYXgmFxRHMyXu90 -ZrtGDInxl/MlSE3/3T8xINiaxhiZSrf5XZqPteRUCKCDPiEdYv19SbsypReguuLA -w5B2l0I/2KH2BMYOMy6170MPDiEbbFugDifwokmuGLHQqiz99AVFVwCMu/ThO1Hj -rm27HS8bYOMzyTiil+pEyhPpoP23P0aHCyESTsXcgfMBZkeTyWxvdj8dCCaJTGiF -GJ6mELEoOnNhLqVhouGzMOZMS0w5vBG/gSQGb76inVqxMFByWKvVzyBm62JJ9P7D -AI8aN2WjZ9c0Z0czEz/SKPISxQjGrdoeQvvmn3Qyg4TS7aWt4RVJh67m042pWPdO -0+2unR8IoW1J6AeQn7Nuz0PyEx+eCZqBp3tsH8zX ------END CERTIFICATE----- diff --git a/public/CA/public/Earth_VPN_CA.crt b/public/CA/public/Earth_VPN_CA.crt deleted file mode 100644 index f48d3ce..0000000 --- a/public/CA/public/Earth_VPN_CA.crt +++ /dev/null @@ -1,44 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHrTCCBZWgAwIBAgIJAIF057Inea3QMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD -VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx -DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B -CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T -GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx -MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH -EwJOQTEMMAoGA1UEChMDTldXMQ4wDAYDVQQLEwVFYXJ0aDEVMBMGA1UEAwwMRWFy -dGhfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3ZWIu -Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3H82oeWzt5ZBoyelJhBjp8WrjE5yrR9+ -/xn118D/WXGeLMPixXmjNe9Ik0tg824DBoc3/ZHOtt8Knk32LZZhF5BF1B5H8Xgg -zx46e23tufVzUWPt+tZjV35//T/PikYUZUdCTYbYZFOuR0VwOiJBtCu0TEwQDaLe -bT9YJmAiSACKRUAT5WJwmP8mxuwW0qL5gns3Sfldq1Fvqjwa/WZQfI1uvV0GeHdd -EWiH5sTe6wtIHjXUwV/YvCsDcqk3e/Jl77QgiYwduovx/jKRCNtpBVH9yA5wsdRk -cPhAEdF8SK/8Ti/8SOChYePmIlIpbqZSO5lxyGJB+JP6Lq5gFSLX2xkTx7Z+GrlG -hiq7++PyI5S9wOsxzb+yggiX9O09n8L39cQ8t6F48AXEZpdE8jdp+jbrLUhFJ33N -HFShms92VGmEL/Hp+o4jzLkKjj8JiZtQVEfTQWiCpU2Iy8SE2soFzx2XrGS4QNkG -5Qes39dfJtPzzugXgO9LjeRECfH1o5j5gr8MfV7S0Pa9KiamTRM+qCjyLM6FgboY -XtqvGNhjZPspZCL2BePNvXMOuWQY80W2NYwpcmtQWd9NXRTOMCkBSYbaTX2gny0j -sAG8OlKz/oNjEFhuS9DYhaB2d9i/7Ye8zFGNxhX/zSXrwSFYB7ew9unACk+UMW4m -7oX3ZkaBx50CAwEAAaOCAcwwggHIMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FHofT+JsVUY8oAVJR3ijj0MxpFq8MIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 -h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ -BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL -TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l -dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh -dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQwYDVR0fBDwwOjA4oDagNIYyaHR0 -cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML0VhcnRoX1ZQTl9DQS5jcmww -SQYIKwYBBQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0 -aW5nLmNvbS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0G -CSqGSIb3DQEBCwUAA4ICAQA/Esj2AP0oM51YYuPhE1Mmknkx6Xxnn49lZim9BJEr -PMe5+M1wxlXnMklHl0AEyf59W1V6PCvlONonsOOZg/Dncm5w4AYdjeUSUxGMr6lw -kVViKkPApv1NBzw3kmJDL0CazTR3K+nl4mB9BTbOSnvGX7QUcZZ92mDxqBAiTaRb -rk8OzDW4+Lla51hSsBYuQrmRtx1jT/OZxLL6HDfM53HTLMvbFMndC2pnZL78owtp -q/V9zyyWC2fjDFGeMAv/7/0BuwfP3Ovir5OIv7C8YMrfcshgZhdt5E4mKX02TENT -x0tfNV/T/TeQGjdX85L4uYnViAA+rAlVRjE8Y0rZInnhDahI5ptpUUjSUvF0D3k1 -ZTXvCqvev4As7k0ci4mCO15LQLcQWOrirzARSR4l1OFWmlxd3zy8CBgjN8RgV0r+ -qPp1DWO/5hqKgVoBUKKAWX7cVu1FZYlxjiKqYsZHkwq5vy7ibHCSipufCWCVdU1X -dkhXhbEaS4FIA1epQNhH+GPyMxVU5uTTieSx0uvEbKvJ9UmLIGQLxBsWSgfmUKjc -xST6RlvTmKywV3ansfmYw84IxSZylpm8gT8+r5iod7lHXre1f+hESmE4lQvQ51eM -f3RjNf5W+uGtaPTGzZRN+b//kGs1pmn6Mtyr94DQCHp3LJCAVoHpFqy8PqjdlLNo -Yg== ------END CERTIFICATE----- diff --git a/public/CA/public/NFC_Public_Website-nofusscomputing.com.crt b/public/CA/public/NFC_Public_Website-nofusscomputing.com.crt deleted file mode 100644 index 2c96b87..0000000 --- a/public/CA/public/NFC_Public_Website-nofusscomputing.com.crt +++ /dev/null @@ -1,34 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIF5DCCA8ygAwIBAgIIB+I42RMLhBkwDQYJKoZIhvcNAQEFBQAwgdgxCzAJBgNV -BAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3Bl -Y2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRQwEgYDVQQLEwtOV1cgUm9v -dCBDQTEUMBIGA1UEAxMLTkZDIFJvb3QgQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0 -aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtl -ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTMxMjIzMDUyNzAwWhcNMTQxMjIzMDUyNzAw -WjCB4zELMAkGA1UEBhMCQVUxFjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNV -BAcTDU5vdCBTcGVjaWZpZWQxGjAYBgNVBAoTEU5vIEZ1c3MgQ29tcHV0aW5nMQ8w -DQYDVQQLEwZORkMgQ0ExHDAaBgNVBAMTE25vZnVzc2NvbXB1dGluZy5jb20xMTAv -BgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20x -JjAkBgNVBA0THU5vIEZ1c3MgQ29tcHV0aW5nIENlcnRpZmljYXRlMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyQqO2ehMgJt7/smhusiPQn183w//y9ZE -6IZ8ylVsQ45HEI8svadYbKayVj4XzOl6h91asi3mGKllRq1fj7/Tekid641ew1Em -t0yMbMbxCj7NW7jM3UeTNP4+0OtNjXKGI6A2/ciS4lQoSC7TQc37L5tr3qN6Tzbt -xLKfvyOIPczDbDBBtfAicw7071ICWjeMGJ/MASAO0RR+c77TcNFqNPkzMztyJpuc -Qy4D+iGMDDfNfltcjd+NA5Y7YSUyx4hl05IIjY2FlmBwC1nLTYtEV4hWN+lDM8W0 -A736zo+kiP/SbryqYVUgJZoCaJV38NRB3ksNDHELwbJAE5WDdP8KlwIDAQABo4Gk -MIGhMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgXgMDwGA1UdHwQ1MDMwMaAv -oC2GK2h0dHA6Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL0NSTC9ORkNDQS5jcmww -QwYIKwYBBQUHAQEENzA1MDMGCCsGAQUFBzAChidodHRwOi8vbm9mdXNzY29tcHV0 -aW5nLmNvbS9DQS9ORkNDQS5jcnQwDQYJKoZIhvcNAQEFBQADggIBAF4LBlQsLtH5 -uLoe2L5Kbs7QFkBa6Wc6i654yVSVty/pUMp8RDOrrortBruSEQ+bZhX8AfPoMtKD -ZKIut9RojJTBuHpDzDZNgNcQdaw/Fx9FAe692OI6maX3bB3On4O5FMiCLegE3i85 -8sIVF86MicQlyKHDajIpUedBHVuWhIpNDhmBMS6JMIaYP7ix6L/fLPBsum6QkJCX -C8QKE0msm9ki3vF/LrM3PwaUvNJ4tQgjBBWsbmLPf8vcLLHaarjksB7ZQdIgXiHj -oD41uc28ORi1/xL+AyTYU1q1qVGyfodwttWZ2bFKqdSRf+5YkFfqOjrby67CvCOo -YJRjJIIT+1Hug3af7gRNljuoATwPCbeb0uCMvUgR24b8k8UVC2cYXgdN4Qriiq9W -9c7gODRmPOt1MqJsR/tsawWpLC9BuIhp915LGc1tZ1fX+toBfyqfQKDKNjazDVPi -jFc6U2c/+FOQhyCqVrqATyLeR7RvJTmmNiHCCg5aJdzqo0SstWte3fJ7AWgY/OhO -TMZG689C6ZWEQjJBrfm3OfuJFYEePg+gJOnswIM/VSd4QVUBlWt8Q/VlnTkzOF38 -LeISdO5yJeyXZft2/t4zTR+o6dETzvZYeCSiH74GEnusZ5KVZSe+0lBDIbStvu/A -wpcM0mL7IYln8Iyb1Una2R+xS/PIgJO9 ------END CERTIFICATE----- diff --git a/public/CA/public/NFC_Root_CA.crt b/public/CA/public/NFC_Root_CA.crt deleted file mode 100644 index 6f718c7..0000000 --- a/public/CA/public/NFC_Root_CA.crt +++ /dev/null @@ -1,43 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD -VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx -DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B -CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T -GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx -MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH -EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S -b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu -Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv -GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk -CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R -ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd -Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7 -gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu -mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8 -i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn -Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA -NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo -A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z -KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99 -h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ -BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL -TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l -dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh -dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0 -cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ -BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp -bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ -KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo -NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op -bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN -/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE -QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8 -HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va -E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf -Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n -2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds -CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4 -UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu ------END CERTIFICATE----- diff --git a/public/CA/public/NWW_Root_CA.crt b/public/CA/public/NWW_Root_CA.crt deleted file mode 100644 index 6ed8a02..0000000 --- a/public/CA/public/NWW_Root_CA.crt +++ /dev/null @@ -1,43 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHpTCCBY2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMCQVUx -CzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQL -EwNOV1cxFDASBgNVBAMMC05XV19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25h -dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr -ZWQgV2ViIENlcnRpZmljYXRlMB4XDTE3MTIyMTAwMDAwMFoXDTI3MTIyMDIzNTk1 -OVowgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAK -BgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTEx -MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv -bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBANNh/YQ88bqyR2569AwMnqe+9VjeUoFQcGgr -JjcS76lZaAERnbl49PJM6X9xcFBQoCD3S1WnNXL26ZtA+PKdfvZOL8GIkwZQrXNB -Ts2f4VP1dahuxuHYlmlwlpdT84JKZlDloUrDOgx0D707Z+ybUrTFjqaQjp/ZfybQ -QLiYfK/6v7K7rOh8WyeWWunDo8uYlZWmtmzAQU9IQimYWepZ4/O+yfWnUVRGvYMD -daALrNaj5MO41J13Y5sXDdl++yTCbujJ+xTDHKfjoJ+KpEuLa8VzWjJYAjm+TSXK -gWObOxpnrb4sW2bB2pPtwQoOKd3tXYW2bRKJHGt2pVzgyGUjZ1yGKFS04+cg9OpP -ePFtS4aTKVTMIe7BHwPA1fhu2efqmfP0vSY0EmRHuk9GIqo1r5EiC94xOcAuLkPG -RquMQr+moD27JrhhlF9vw/Z9pr6gZ+hUDYGbE0913F1mjdtYp1lBmaLysLwpI0lH -PUZdFdejCbnvPfH9EVxNRgbM5J/yzfRB//QRnufpjC2OgB6zTnifsYIOOSYHYgCK -4DLrin74j4YiUGm49wuTwdqk52B8bkDzx4cWwIpJWYIeQC2xMrR/RvdrDMxt1Frg -k5es0NHMWAzd2C2PRS2fmvuUdq2+QZRe721TvoeFLMI05PnUrxOkz/din8BNWtsN -AoBCi3FdAgMBAAGjggHGMIIBwjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRI -6WaWbdVLxOTffYdPlqd7zAw+7TCB3QYDVR0jBIHVMIHSgBRI6WaWbdVLxOTffYdP -lqd7zAw+7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYD -VQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05X -V19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3 -b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRl -ggEBMA4GA1UdDwEB/wQEAwIBBjBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vbm9m -dXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldXX1Jvb3RfQ0EuY3JsMEkGCCsGAQUF -BwEBBD0wOzA5BggrBgEFBQcwAoYtaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20v -Q0EvTldXX1Jvb3RfQ0EuY3J0MBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0B -AQsFAAOCAgEARpj46yWBnbJIfqh7V9c1AWZmbzqogJynp5AqyC2e8Rp59dpPKJ60 -BC2WVUMsCHqyhl6oZwmn2Ejud+iodGo4IwdgDneFvQQAiF7TVTBnBRHnup3rLtTX -zvqIBPyqBmrvZSjSfG0mStb3YWS41yj9bhsqy1qRTdXS+Ghc4I1DcOWu62NbhbP/ -UHPUEwCyPxEWLtxk0u8N8Hqmlr3qHHM53cKaOUUIn6VMtq2S0o39xWt7QuHWe3Aa -COQYaAVQ60f9cZUmw7h31d3oen7nrlaaDAp7i1e4HuTb8+PzetoGjJ8xCt4cbnp0 -ThQFdVuaLszSiHpmsKPvdazIVjhvT7CTM5EydsDHZFA6cMmWjYYm5f9MXbiCSebC -2q+2W2vO92yd/8JE3JCRc8A2Mi4RSw9SziN/MCvueorIFJXfawz3rARgk5KXKPNj -DBHcxxaQOTCJHLblGsv+9S/ANnucOihQRPWPGKGr80Yy5wQ8TKnuElvzrOjyR2Cj -HGqSX2ar1GnFtmDsfamnJ0kb+2Sbamt3slAxUM/Qc+SIWepVtSNb8IppWPCxmPOd -QyUMRayfkkc2qdo3xyUV1zE/alMPK6k0epyZ0+lyTo+sVpyzVq/D1wS63pUXiK/f -gB5/XW5AC1ngeN3DBlOc/R5mscyv4o4cHOauxMKjldGgGhqI0QnRSi4= ------END CERTIFICATE----- diff --git a/public/CA/public/NWW_VPN_Server-vpn.networkedweb.local.crt b/public/CA/public/NWW_VPN_Server-vpn.networkedweb.local.crt deleted file mode 100644 index 687cee9..0000000 --- a/public/CA/public/NWW_VPN_Server-vpn.networkedweb.local.crt +++ /dev/null @@ -1,40 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHBDCCBOygAwIBAgIJALVEKS03soafMA0GCSqGSIb3DQEBBQUAMIHWMQswCQYD -VQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90IFNw -ZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjETMBEGA1UECxMKTldXIFZQ -TiBDQTETMBEGA1UEAxMKTldXIFZQTiBDQTExMC8GCSqGSIb3DQEJARYiam9uYXRo -b24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2Vk -IFdlYiBDZXJ0aWZpY2F0ZTAeFw0xMzEyMjMwMDAwMDBaFw0xODEyMjIyMzU5NTla -MIHiMQswCQYDVQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UE -BxMNTm90IFNwZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjETMBEGA1UE -CxMKTldXIFZQTiBDQTEfMB0GA1UEAxMWdnBuLm5ldHdvcmtlZHdlYi5sb2NhbDEx -MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv -bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBAKE3y+wq5woYZr0rDBXxzJz4dGFPAeQdC7Hg -PwUEIvTk6FooNLdnDyf52KQPCsa4HmuM3PbR3oz0Hwn0PL7bNaSzmccAcSQejuij -WQHSGvOiYDLKrjNmwGAyVflQDcN7q5hm27A4Ltio+DBqLZkE6MCg958ThysHaHiR -dIMiYDeDba9lUv5H4Zaud+8eEAwDa5VJUxr4D+Wbzikc4vsCZFBwdByInWdpGMMC -Hyz3dQJmlW988rq3inB7LkMBCn/TOlG/RZb9b2pyoow8A+YiL0tWSa57WqELgSlC -YPx66bjZa03Nm8VzDPePgh8zFPlKBp9iXHDYQ+NH4GgPror/Cx0ASMcDl+6Bu4Kg -F4pHvOopAplKPPNC8AFBxTjyBzPpK6x5hLRiPGOuu8259QmG7QTya9fBlzF3/uky -b+g7CjZ0tSycZdf2wA599p4/ossQab01cnLapqSyx7N2EZNAtWpsNdq0SGaiIvjh -xLMmSLlaht5GV7qSRQ2ho+/Rn6JWSnrmVbA39olIqhwwQM+TZVnekKXAQwARDWLF -XNBWwueJnU/OivVOkJbHtiCHtq2bJIcQd0ZOix9SWsiXvCNZBxzZS2t4R4m5re5W -FkwYxCz+C3NFdCzEF2inaXjRWckMq72HZYHuZUOE7tYRKYZ4pl0d7ejl0zgm2cee -Hb2RyuixAgMBAAGjgcYwgcMwDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBaAwPwYD -VR0fBDgwNjA0oDKgMIYuaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JM -L05XV1ZQTkNBLmNybDBGBggrBgEFBQcBAQQ6MDgwNgYIKwYBBQUHMAKGKmh0dHA6 -Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL05XV1ZQTkNBLmNydDAdBgNVHQ4EFgQU -lFo7HaYd3NgW2Z8m3bU2UE/ufk4wDQYJKoZIhvcNAQEFBQADggIBAIEWGvihO55D -qusXDmFPNPqd1HQ3pj+MSuxiuWG8DKW5f0Px6Wvhc1jKevPIu7ng1B2COfGcmjDD -Os1YKr+r/T7FS+gzT4yDe7kwsehAF/+TrtbIF9cBv3zKqhnlVLHTYgn0td1fZFxT -/Q+yfie+fSzOl9Xt149F7HWvikLlqaKDyjTpCnz0q5Mnr2MZvjxgSGEybxS/RvI5 -j4NY8z1d/JSI5eMeegi4ZKkGTiO6BqLCRvtL4LAFq4WbmrgxMmteBshACtxAy4fq -Uofzjx6ZmHic2npRIaTCVHG+WP0bmoDHQEYiwuZLIqFLLMsJ5fa8ovWcyH7EWpfJ -8vX053lctyH8ui1ONL+vfjX6WPjBcAfZsuso8TurckzftPDJXPbz1ScpFaaIbfiA -F2c2DQwfhF8HU/bnaSKvsb5dqnQqiZxiaWmevs7ZPoj9TCKSIbgund7eLLwRlZno -ZY9/Bf292Bn/8vn+utZcx83S9h0VJHZnJgvYqpKdvo/7YEN2yd05SMeXtxHugUfh -kzNRXp5yTGfj8NNEJp0ksSPy+Z+5OPgzQzw+VSdXuFI8Tjrjjmbf3hAAi8cCI42O -MbsoDUZr9tauqg2jTjNnX728FrkIPWfOTp1yWRnSd2/PA+aPIJNSSd5Q3tzWZZ7r -B062YXDRqRM8GzHVoEmSwxQJWNZw9UTJ ------END CERTIFICATE----- diff --git a/public/CA/public/Pegasus_VPN_CA.crt b/public/CA/public/Pegasus_VPN_CA.crt deleted file mode 100644 index 1d098b9..0000000 --- a/public/CA/public/Pegasus_VPN_CA.crt +++ /dev/null @@ -1,43 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIHpzCCBY+gAwIBAgIINsj7HlzAfYswDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNV -BAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEM -MAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJ -ARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZ -TmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTAeFw0xNTEwMjcwMDAwMDBaFw0yMDEw -MjYyMzU5NTlaMIGjMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcT -Ak5BMQwwCgYDVQQKEwNOV1cxEDAOBgNVBAsTB1BlZ2FzdXMxFzAVBgNVBAMMDlBl -Z2FzdXNfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3 -ZWIuY29tMRcwFQYDVQQNDA5QZWdhc3VzX1ZQTl9DQTCCAiIwDQYJKoZIhvcNAQEB -BQADggIPADCCAgoCggIBAMjkj6nShoH9YfKCa8MbQFV0dqkoHuuv11W7IcvL4isR -NrLshe8zlB3v9cGsaWot9zu+tbcX71SW+2vdlCTuNerdlOQIiMntjkbHPG8iwjZu -WHpu/DqZv9BJjfIuCWWb3eTw6DuvQTo3Lwauh7z/Vp8IKPmoloAVnj8rZizVqWxV -cJwPD3vKJAKtbtZkfC7dgWFPRWTtX26DVV/EmhICinE/KmkfckLxKdkpuyejiHz8 -uduweS9Wfj21mgsWKeSYkzONGr04YmYxCLWGqyqwQ+ZsNRJWdRFBHKwKwH3k01I8 -Ce6/tpNZYQLYykUHTCpjHW4UuvkXFo2SK9ilJ5bUze5qedYrFMXsGJoWgw+xCYtZ -QkFQmFNXFk1oplVwK/8Jnn3mfEpsbtQBW4RAyOTETRlWpe+n+/BgZNPdncODXWN0 -Gvtg4guxftdNesXd+6e4R7tC2GX8sqxOzNji64KxAoiMPK0qwhyFKegD7iuMC/LC -D2KhFNxjRHkJIe1MfvPAZPygiQYPbNatVLzRSaS8Uj132IUfqqCPyrKNg/rJb6Yh -Ovlf/jEMUaEzH9xUmlOEiKf2yyXrw6vTWhtkYCNCyronLblFc+NiwSzCxcINMlX+ -hj8zg49wQC/80QjwdHbz2KP9sLzFtuURFjRdpfYFaiI7iWapo+eHYq6OKq4nH1Z1 -AgMBAAGjggHOMIIByjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRBbMbXhzlI -dbRsB2xNIPbP2kCbETCB4gYDVR0jBIHaMIHXgBRI6WaWbdVLxOTffYdPlqd7zAw+ -7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO -QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290 -X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3 -ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlggYgFRAn -FiYwDgYDVR0PAQH/BAQDAgEGMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9ub2Z1 -c3Njb21wdXRpbmcuY29tL0NBL0NSTC9QZWdhc3VzX1ZQTl9DQS5jcmwwSQYIKwYB -BQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0aW5nLmNv -bS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3 -DQEBCwUAA4ICAQCGuevjkXLiEC03sX0Iu1oV8IgrRv76agQseJs/s+xBJ2NznjT8 -xsZX7QmpAJ1tdOtiwQwggF04KHj6rlt0PbA2MHjz1uB148pep8DpF/z+iCW8exA8 -iIBjRK9A339Q8gM8jJRBoz6I3Ipwkx+06+DWs73fwW2Y1PgHg445GB1ToN3cKS54 -YomZUA1yagdBiDXriPReFQPBTk18dyA8ZIoVse1J4HgGr5i+5for6IK1C7w2UoTh -55sEP44VskYpAZCaCd531OVgruw+SixhOJbHS/j/smN1WinLEptBKi7LY+nLJtiE -BEDiexeXwlfZWBTSs34yDIn8JBtOLYd1Ur/kB/j4Wbs7xT9RJ1VhTDFZcOB3rREj -comhcuWsbQegdt9M0DWZdriZzgzGQBm5dqFnp6FAG4tOjAGr24TP6tsq9sbS1Eyk -5snwE70mTQ9bCDFU4Re+bVfAIFDfY9HF822ZgMdy1BQw/S5a2YoRMZtYaZFGYidp -VNk/ICnl6ELlg6ZlPAiAn2PaBICTtzlt/TpznAFEvxlvc7tsc0HsDKVT0n+T8wv3 -yp0rbgrQrJlI+Z9nl+g3ZHDc9mQXbcIWBkUFUoIsTUwdGExXypWDIlQ86pqyLFnl -42BzmL9mpf862aHybxCBOEre2uBUhFGWTTjNm7kjItM5SGQGUq7EAd1p6w== ------END CERTIFICATE----- diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 171e066..0000000 --- a/public/index.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - Home [No Fuss Computing] - - - - - - - - - - - - - - - - - - - - - -
-

-
-

View us at other locations

-

- - Docker Hub
- - GitHub
- - Gitlab
- - FaceBook
- - Read the Docs
-

-
-
-

© 2007-2021

-
- - From 67b9379fe7eed288d00d8451678d338f2ad2a835 Mon Sep 17 00:00:00 2001 From: Jon Lockwood Date: Mon, 31 Jan 2022 11:08:09 +0930 Subject: [PATCH 107/222] refactor(blog_post): renamed to article to reflect direction MR !7 --- pages/articles/2014/mdt_setup.md | 2 +- pages/articles/2015/choose_internet_service.md | 2 +- pages/articles/index.md | 2 +- theme-overrides/{blog_post.html => article.html} | 2 +- theme-overrides/{blog_list.html => article_list.html} | 8 ++++---- theme-overrides/home.html | 6 +++--- ...xtended_preview.html => article_extended_preview.html} | 0 .../{blog_metadata.html => article_metadata.html} | 2 +- .../partials/{blog_social.html => article_social.html} | 0 9 files changed, 12 insertions(+), 12 deletions(-) rename theme-overrides/{blog_post.html => article.html} (70%) rename theme-overrides/{blog_list.html => article_list.html} (75%) rename theme-overrides/partials/{blog_extended_preview.html => article_extended_preview.html} (100%) rename theme-overrides/partials/{blog_metadata.html => article_metadata.html} (95%) rename theme-overrides/partials/{blog_social.html => article_social.html} (100%) diff --git a/pages/articles/2014/mdt_setup.md b/pages/articles/2014/mdt_setup.md index 6a7d19c..fdd3160 100644 --- a/pages/articles/2014/mdt_setup.md +++ b/pages/articles/2014/mdt_setup.md @@ -2,7 +2,7 @@ title: How I use Microsoft Deployment Toolkit description: This article is a record of how I setup my Microsoft Deployment Toolkit. There are many ways to set it up. However this is how I do it. date: 2014-09-01 -template: blog_post.html +template: article.html type: blog author: jon about: https://en.wikipedia.org/wiki/Microsoft_Deployment_Toolkit diff --git a/pages/articles/2015/choose_internet_service.md b/pages/articles/2015/choose_internet_service.md index 6ea3f38..6a2f7ac 100644 --- a/pages/articles/2015/choose_internet_service.md +++ b/pages/articles/2015/choose_internet_service.md @@ -2,7 +2,7 @@ title: Choosing an Internet Service description: The Internet has now become a mainstream item within the average Australian home. The Internet has become so ingrained within our daily lives that for those of us that were around when the Internet was born have actually forgotten what life was like without it. I remember when I was growing up that if we wanted to learn about something you would go to the local library or to a family/friends house to look through their Encyclopaedia Britannica which more often than not was at least five years out of date. Believe it or not that was only 15 to 20 years ago. Now if I haven't lost you already and hopefully by the end of this article I have been able to provide you with more insight on being able to choose an Internet service from an ISP with a little more of an understanding of the technology behind that Internet connection. date: 2015-02-25 -template: blog_post.html +template: article.html type: blog author: jon tags: diff --git a/pages/articles/index.md b/pages/articles/index.md index 5cf228b..55fab06 100644 --- a/pages/articles/index.md +++ b/pages/articles/index.md @@ -1,6 +1,6 @@ --- -template: blog_list.html +template: article_list.html title: No Fuss Computing Articles --- diff --git a/theme-overrides/blog_post.html b/theme-overrides/article.html similarity index 70% rename from theme-overrides/blog_post.html rename to theme-overrides/article.html index 387d8c5..8e7125a 100644 --- a/theme-overrides/blog_post.html +++ b/theme-overrides/article.html @@ -2,7 +2,7 @@ {% block content %}

{{ page.title }}

- {% include "partials/blog_metadata.html" %} + {% include "partials/article_metadata.html" %}
{{ page.content }} {% endblock %} diff --git a/theme-overrides/blog_list.html b/theme-overrides/article_list.html similarity index 75% rename from theme-overrides/blog_list.html rename to theme-overrides/article_list.html index 0951f43..8cbb8ab 100644 --- a/theme-overrides/blog_list.html +++ b/theme-overrides/article_list.html @@ -2,18 +2,18 @@ {% block content %} {{ page.content }} - {% set blog_posts = [] %} + {% set article_posts = [] %} {% for page in nav.pages %} {% if page.url.startswith(config.extra.blog.dir) and page.meta.date is defined %} - {{ blog_posts.append( page ) or "" }} + {{ article_posts.append( page ) or "" }} {% endif %} {% endfor %} - {% for page in (blog_posts|sort(attribute="meta.date", reverse=True))[:config.extra.blog.list_length] %} + {% for page in (article_posts|sort(attribute="meta.date", reverse=True))[:config.extra.blog.list_length] %}

{{ page.title }}


- {% include "partials/blog_metadata.html" %} + {% include "partials/article_metadata.html" %}

{{ page.meta.description }}

diff --git a/theme-overrides/home.html b/theme-overrides/home.html index 801eac9..459d5b5 100644 --- a/theme-overrides/home.html +++ b/theme-overrides/home.html @@ -3,11 +3,11 @@ {% block content %}
{{ page.content }} - {% set blog_posts = [] %} + {% set article_posts = [] %} {% for page in nav.pages %} {% if page.url.startswith(config.extra.blog.dir) and page.meta.date is defined %} - {{ blog_posts.append( page ) or "" }} + {{ article_posts.append( page ) or "" }} {% endif %} {% endfor %} @@ -16,7 +16,7 @@

{{ page.title }}

4xK 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/projects/application_manager/management_interface.png b/wiki/dokuwiki/images/media/public/projects/application_manager/management_interface.png new file mode 100755 index 0000000000000000000000000000000000000000..d857150fefeddd427dd7849f455e91a1657b4229 GIT binary patch literal 34825 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 USmt3^uK)l507*qoM6N<$f@v5c%>V!Z literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/amd_catalyst.png b/wiki/dokuwiki/images/media/public/scms/amd_catalyst.png new file mode 100755 index 0000000000000000000000000000000000000000..993475853a74f2ccd3d859da3113cf22eedfa78a GIT binary patch literal 9364 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/couchpotato.png b/wiki/dokuwiki/images/media/public/scms/couchpotato.png new file mode 100755 index 0000000000000000000000000000000000000000..06458e2506950131de1a07a6e6725dd5872448bb GIT binary patch literal 7643 zcmcIpXEAB@f*h&Fm} zLxSidqC`FNzVCUz?|j#3f4+6?z1G^#b>H{%tb46%|5;BB^|db0T%`d302j1xs~ew> z=-)3D#d$C1EIoKWko&4?n^K*(5Gv;<=ik)G+b~}MfS=>{OELvy7dj7KL1|c`OuSuC z0S-QJfQqxXBb-Om%?BRf?c?EVP|mG?u5;-(#!^pL-pLyw>hK#Pibfy-3d(4tgOdjw z#p4Kfb@NgL@$m3~c-)*7K^9VaVtPn5_&vAVK|XMkAbnG(AP*-wXOOZIjRIQ!oQ!~@ z9C*+OPcL72v?AyaP5JZr?=S?!^9Kawp$Pi39!ot#9yMLIM_){LXt;PS`;b+ zm6MSc;W2SQ@!WCn;(^NWK*hw)JE**b%=vR(%pVP;L~}kW_&B@B8>?&nmGk^d5p)lQ zLdruR0RaJ`0TQC#KCTdPIXO9q7!(49g3l3P-#{;v0~+k*%loIuf9j~ieVu&VkSI5A zFP`7J4vyY_C`AzHccQ=BUyE}<{+-Cn_b>C#ZG@m5kPvZEG05M_=R}3`puCz7+yUk7 zW9segsq`<~!J}p(q41meUqJuJ`VT%_-2nwxf{KYtfyJc3P)SoUIe7_bd2varf8zfM z`WL#Mx3il|;D1Axl#+)^|3&{N&|h=~$ZsS5$(TP}|GlPviT_`QIXnIB7t+ti^N($D zc7nh?;Rv`F%J;)1oX>S@&Vm(cQJr0YPX#gsaS@MGH#i#UEkhX=KnMctmSe9ofliE^+Ts&YUTp@IT zd?r1;SmIb?za+bMzk70weNvCW?k+!1@!i4B1D7IXdNMbSa1Bjay-Gr3-zFM07phKm`tCXB_AV&vxp2< zJ(0?3FvGR~`s`S{5lC^6j6+BaPtb*MR+Ck;ACQ)cS{INskRHCA>nRTm2;u}voOUSSG)btAx%wIhH~Xy`UgA$?LLPFX^`NwzeJk};{*4{* zn2sB?NhwOVxJ8*py7%yKi*_*!CzY`-O3=dX&}&CTew@EHJCuvRN|3=NMga^cyckqr z4;k2Al5Cmnr$h%dEJyDsQ%>US=D|m%_KZl$Qif`V>WgUlQs!#ltIHAI7R#)JhQ4$_ zY$Rm_`?l@EXTYfY4}Ba6{$tuS|3GDMEL{5_Q-JEicnR+Y2~MN zDRfoCHKQ}9j2ZTbWHLK$s-&{)e3ihmV@)sH zF@45^>IW!&9MB_`;s9PB4~}LO!4I`O6En)clBeeaQ=Rc zlz9a3pz#H72buYzCFt^W==>xM*MP6-w49KW5d|@j^^q4dg!uF4gMJ7Qdgqf?BLk=t zB}~pLaC0+{O47f!j@S3s!v{zzN=Oo)d|7?%{*tsK31fzHw@+Tk&nad_zk=G6GAs<; znPjc43rj$T-*{k0uCSC+H!2s9O3GT_!pRRB0)jAf+?ToNHAZkc^pq((14YE9;#3`amAxjT@DvcDE}qg>J12? z@=ma$_7jMVS9cakNx!(KeBr1GU{2bLY-AnhKm)mlxG9t}zx|Xa&=DptH!kV#EUxM4 zp154ZH5`z;vtN^-uzfx@yG5e>*|pg168#CXB>(}~#D-Nl1%&Jd-wdfIek z5kH^yry`3-7{<#XVO(2}y3@WgAE3`d3DO}^elKdnq?PhR$kAqmwZ{kRzXa;p=kx{R zl{mRCV@bT};JLt4Z^}l-Z$6zN3)ki!FQuw~b3VRp&deRZc^|JA?XkA~^ouQFN$Le|IB;J?i{O}{a-YN7V0r;88Wwuek z^4IvXExt)vp^7u7<>^)sl=N6hY$c@*rj94!x{p5*7@m7*L6}PQWq63Ws`P-H%*zko zn;cBB$Bk2ym%L|hD@`Y)_dovl!jdrMP1>`K2Yk|B>ew9E{Q{JQ%PG-NZdczm>iw<| zpCuN0ZmU;-^7n}t(2)+uX>S3*qaZk`P(di&<`B>g7e1P9xvIm3X)bs=+!E_eTB6Ux`UYLP6~ulYgDEZv$Pc4!nU&8Q%3 z+wRs*GQ2)#&4gd}gDvF*88ewzHCbP>kEFsvzOvi+S1cW9R?lNGis3(S&|sq5JV}W4 z?iHvUY4hD&{@lF*W$IU*PMcd-dp~oM>CrL}Vmx!+r)11`^6!yKrluaDEc;u?&}BE{ zo^7sp#--edh50KK>-K$=FT6KTVjXAF$*0)e6|F2^w^v@lVZgl4b@7y5+zJhV6nn0( zf_C{V24|H0=^s+?{vbrU?h%HfRs}lSV$DtNYneo@@OAq?U%zkm0r_=$GUz8yS*W3# z1B@t?aA9~HkS+23w)m-LY4WqWwY$Ol$`2lMfkh$;Fmbvp{3kDTI69P&_|OI!4z7w) zfRbt&9&{|`?DqQO-nPeli-D0MhnoXQO3l~&{u$1}H<$&w@p<}gx~nW#al+6uBlC5E ziOpBOGn=r8mdef)U7LQALu@!XArC{!CK`gfC1|FV?O;7!9=_E{oS^*_f79 zzTwY-%azUk-cO2t930WR?qarQ>~l<+hKMvvh#E-{benJLDG$>khIm#5z@4l5CO}E;*sbB|Hf4|$|YLSXw=yHAb z(r&V6$1mwN`xezTI(mwlQ7gRSVU_~-+;t4}aXk%;zZ)7^NCTsQ(bovm2!f)XFkZJd zy3Ibltx>lBNw~u{v;&yHih%$=*&R)kg!B3t%&olHxW4I#l_06cQeEQ{HDfIhNF(yRuc=CV+yPujmo?b?Tcr|Gb519 zg!{{@9ymm?dAgAWS;@RiDp}_>c9MP5qP@j21KneL>FQn@g0Q}#-{Qnw>~wYYfUJyf z@mjRrbO%D5Xmk9yyx==N8e|SUH3r34mN+ZW>8~e_%3U-66R%|(N!O8(!?>zUpB>X-}Smj%nh5es_1;$Be zd(ZVunXL(lug4fRo1fkIo8BwuMTGbj4#-v^U!;7OI?3sy4H;Ls)bv9eoYH~d^VA`7 zx4M6Q)*)BwZ*i?@f1;*bE&fv5+1bJ#oF`G&W@Ia@TjZ| zQuO|P?RC<7irIVbvv4%W%Lj99koHT!%dE5gvg@r7$4gQ$4=J{gpYQnL}oL_0* zJ<)WJjJwfaJmP=qxG^~wdUSBG!GC$hyV;JD{b+nO=p^&|iX;3e0?1kPg4RyGilb7= z-D7yK4IPkeq5YI$njAxF>!ZhciBf7i&eqw*mvIIAGmozOAso>mSd#KhYR+Ap8Etua z&!7FHQ{?C>%Ye~zwb`%|7bMeZzP1P*UYMA4^5k{V=9TZwHKbP%l`muwM|%*Pz;AI{ z{3O}rgi675>!XDj<}KTqd)6*sh0_oIcD(3*&ni=8)bkfWnFvk?kA4yhk7HZ=p;S57 zV+&ey?Z;DLQx!VYlyMnmEr&M1^zb!4$S;TFnHX+PO=I|Iue%I_L~oJ(e!*bTl|!Xu z;Zfq9OKTIm?@{h$*&~yvO?>K@o!|8RPATblKvVrhh{k|tW4RHNA&> zGsUC%hf!5siU(%5v0vk3ss)TC*6*&?KMk1gYr-}!q!wqXNJM&q1N_>Tv}lUMyZKya z;tfg+B&X8K{Hx^4?!>+ElnyN|v(buwSEykCRn-#89C^@@&FuVc@mHXruC8_Bf)F+F zw$U@@er&mM)+5b{HqUAmL1Ao}q>?i^+Q9xs)VSf%BYE$IBJ{d=2W)KAp@vUnxXh>XNA{Tx>l8lj$uH^#aA8OQa;PPI@jRmgGO~jhgu!P^JG% zHGU)j>yU)Xc1kyw5W*ckn``{o>zAm9IeZ#rlX2(9{TS83r?0}erYg&DZ~ekOZ8KD2 zS*|oBnqA)jW(f|bl5^72&Nb=lQ;U*S-}^-$)Yr|X*vK8OOU5B(`heA@gb@FJm&bVO=HNo0e6WayG8WFEGjyUQV`|^rD>QzNgc*=}$R+tyA z-HW)3dSgMxu4q@EGvzS=>o!t$dA1`@%6zL^ZVV+#jr0+bhs4w`TE`73Vm~bAQ35{f z(A#==k<%zhN4xX7WDBdM+MpbLnKYS(`ASc*EFEDDZM=|@X8N(B_XA^Q5eY4A>25z} z!{23Y)|Wbt=2y|*3t!)W7xGW;Kw~MSc(S@oaBnNKiex@g#YvtWT6Zh% z1J;;>a`S)sWvuOyD`xMoaWa5>A_(pjlF?K|*u5uLWpL%Btc4!Frnkc$ zh}pE;K^*l+OMXU&Ff{hfWiy5gql6Ql@3!++XHF4wg{YCpz9Coz!jJ(r$vqp(-E*L( z@I~B~ufj`Ssoh6=cz|^Jp`G#G_hhRO0#iA9-G1TWgAW(#38RdU z)U<`IzJV)W`c=}2l%8BS+mAkg2XeQZQNH5Xa?7koR9%ldlU<%(Ct+F6257elt`&Qd z`f$(2m=l1XfTlSsa8+y+;Ed)6sr^K-APjaXY;87$6ZIA~Mw45V7qt}*$tb^#q8Wx3 zjC5UG%Xx8R#O5s*R<^SBwe?HP>);PJ>HHVzd`YS!TB7-M=9t-sh3a0wUy>OR#>SrS z8k@(FR&W!kPi4=>fb{7hD`pKgnT=TzEQOCLk6_+xFGpV=2{|cLacT72kK9+%TDb5{ z#Lwoj#+taEwSfRkdy#f?qU}vX;a&U66|dtadYER3V^2lZHjQuZAYYgv-y)tDmS`v4 zrM-}5s$}0;s~0-GmGr@aLXW^Ce@*mJNfI;v z5&tynDKZw7__YJDpbDA2A?4Tk80fX!E<`HkNZjwx=ng@m5@w!OE6x7#&bDQHqWQ6< zAh3`#_)DFP#ari(N6ptLruLKLj5lFqg_TBIu4FHm$8|qU9d$cqung)_8!69v9tkzB z177g2aiWg;Z*rw}wf7?PnD`gKYn02;zWR6b^*$N5z5|EQz3`67G(^08zsj)IAQ0T! zu621)2speI0DkFDRY`}|3fH*a4L06Iae5?}FO6zwWvvBi8!`FnU^0Pg+#@}CwL`F3 zrDOHl>k5kayA;^x6G8AtVUym`YEfDZX2hXr|9Lw#>>c#**8%wK^~FY$JFlSmP%hfz z+f$*fKTOj;79P+do&`$O+Jn^!Dpr5Zq||Eb^FfZ$6}_W57KWu` z0^9EcL{bBqtc)sJzK=TyCQW<;@e^g!IOew6h3bQhYfd}`^tXD6qGEe8UwdLGW=#Cq zQGL}Qqab+eB)SUVEaoAgJQ&kCmDojyI`` zUWC*7_*`^ZRXJ<}pIjUTuXeiZ(UKLbMo6z>nSvE24LL4wp>#Xwb>E_&!=|+@L2w3!^y?W^ zX0nO#vx!@v19IvV#>R964JJJggqN!tA`;5 z^_Wzxd?oCjUf?l#GQm(vW2U8Ck99B7W%-OLrdtgW=-zPc&9DE+ceEit`iN02E%isX zFZb8t<$i{}&6>4PWLK0^Agv`$mB@psWFnR-#=p(#-KbRiUSy~01Wyg= zhY8zoWYwwV9TTRYv}&&I%1U>g(X?Cpaej&gbkd9lMmJ`yx<|N#fYnM{t}FRY!3M`R zoUR+|U9Uy1F3AdZyU~t5&v8V47c_q_=J>Tl&kJ>#x#X_!Sf@p@SAXS*du$a%s_U{? zaA6>B-Pg}Evb=M^GeUQxd%6~1%74EXu<=9gx%1N}SrP@tGM-MQ^gkVvDTHY3Xh*DK z!7qyynafSG^iO6ls)Vmq-nmyaLi$8V2j-TN>5*cdc;_Rq1ZT?HU|ul5YzS1H-;@bAV|Iw$DYxupVNr6wKaBqn!D z{Oj0KJGW|IN)f29uz3Y+X%j6ag_L@ABkXB>)JnqCXOiIg!n=g? zo2<^40sZD_X7d?F<1-YUtsg<_$%aCN;B;TFx)z^hQD=Yc@A{L;np|4)7 HY9I9*i;Z9X`Ye*%PgrqVDk^muK7z8>h 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 AegFUf literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/games.png b/wiki/dokuwiki/images/media/public/scms/games.png new file mode 100755 index 0000000000000000000000000000000000000000..7511d380aa9f9fb20416dee0278fa1c02812c0e4 GIT binary patch literal 15629 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 literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/gimp.png b/wiki/dokuwiki/images/media/public/scms/gimp.png new file mode 100755 index 0000000000000000000000000000000000000000..0bbf3686abb8aabe31eb0a2cd42b50fbff880a53 GIT binary patch literal 12868 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 IsaQw+AKwLW_y7O^ literal 0 HcmV?d00001 diff --git a/wiki/dokuwiki/images/media/public/scms/googlechrome.png b/wiki/dokuwiki/images/media/public/scms/googlechrome.png new file mode 100755 index 0000000000000000000000000000000000000000..11e82b212ffb669cd9dfb15856a7eef229c9c8be GIT binary patch literal 12217 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