From c2790dd99085d2a9a57f020976f4823e1db86617 Mon Sep 17 00:00:00 2001
From: "U-SOLEIL\\madela" <madela@ORD06118.synchrotron-soleil.fr>
Date: Tue, 18 Jun 2024 10:54:58 +0200
Subject: [PATCH] Update to Conan 2.4.1

---
 .gitlab-ci.yml                         | 216 ++++++++++++-------------
 README.md                              |  48 +++---
 build-windows-i386.py                  |  68 ++++----
 conan_synchrotron-soleil_fr_interm.cer | 192 +++++++++++-----------
 4 files changed, 262 insertions(+), 262 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a2867ca..9b964e0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,108 +1,108 @@
-variables:
-  CONAN_VERSION: "2.0.17"
-  PYTHON_VERSION: "3.6.13"
-
-workflow:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_PIPELINE_SOURCE == "web"
-    - if: $CI_COMMIT_TAG
-
-stages:
-  - build
-  - test
-  - package
-
-.build:
-  stage: build
-  script:
-    # Install prerequisites for pyinstaller
-    - yum install -y zlib-devel
-    # Install python 3
-    - curl -s -L -o ${PYTHON_ROOT}.zip https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/python3/-/jobs/artifacts/3.6.13/download?job=${PLATFORM}
-    - unzip -q ${PYTHON_ROOT}.zip -d ${CI_PROJECT_DIR}
-    - rm -f ${PYTHON_ROOT}.zip
-    - export PATH=${CI_PROJECT_DIR}/${PYTHON_ROOT}/bin:$PATH
-    - export LD_LIBRARY_PATH=${CI_PROJECT_DIR}/${PYTHON_ROOT}/lib
-    # Install source of conan
-    - curl -s -L -o conan-${CONAN_VERSION}.zip https://github.com/conan-io/conan/archive/refs/tags/${CONAN_VERSION}.zip
-    - unzip -q conan-${CONAN_VERSION}.zip
-    - cd ${CI_PROJECT_DIR}/conan-${CONAN_VERSION}
-    - pip install -e .
-    - python pyinstaller.py
-    - mv ${CI_PROJECT_DIR}/conan-${CONAN_VERSION}/pyinstaller/dist/conan ${CI_PROJECT_DIR}/${CONAN_ROOT}
-    # Add Sectigo CA certificates 
-    - cat ${CI_PROJECT_DIR}/conan_synchrotron-soleil_fr_interm.cer >> ${CI_PROJECT_DIR}/${CONAN_ROOT}/certifi/cacert.pem
-  artifacts:
-    name: ${CONAN_ROOT}
-    paths:
-      - ${CONAN_ROOT}
-
-.test:
-  stage: test
-  script:
-    - ${CI_PROJECT_DIR}/${CONAN_ROOT}/conan --version | grep ${CONAN_VERSION}
-
-.package:
-  stage: package
-  script:
-    - cd ${CI_PROJECT_DIR}/${CONAN_ROOT}
-    - zip -r --symlinks ../${CONAN_ROOT}.zip *
-    - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ../${CONAN_ROOT}.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/conan/${CONAN_VERSION}/${CONAN_ROOT}"'
-
-linux-x86_64:
-  extends: [".build"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44
-  variables:
-    PLATFORM: "linux-x86_64"
-    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
-    PYTHON_ROOT: "python-${PYTHON_VERSION}-${PLATFORM}"
-
-test-x86_64:
-  extends: [".test"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44
-  variables:
-    PLATFORM: "linux-x86_64"
-    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
-    PYTHON_ROOT: "python-${PYTHON_VERSION}-${PLATFORM}"
-  needs:
-    - linux-x86_64
-
-package-x86_64:
-  extends: [".package"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44
-  variables:
-    PLATFORM: "linux-x86_64"
-    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
-  needs:
-    - linux-x86_64
-    - test-x86_64
-
-linux-i686:
-  extends: [".build"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86
-  variables:
-    PLATFORM: "linux-i686"
-    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
-    PYTHON_ROOT: "python-${PYTHON_VERSION}-${PLATFORM}"
-
-test-i686:
-  extends: [".test"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86
-  variables:
-    PLATFORM: "linux-i686"
-    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
-    PYTHON_ROOT: "python-${PYTHON_VERSION}-${PLATFORM}"
-  needs:
-    - linux-i686
-
-package-i686:
-  extends: [".package"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86
-  variables:
-    PLATFORM: "linux-i686"
-    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
-    PYTHON_ROOT: "python-${PYTHON_VERSION}-${PLATFORM}"
-  needs:
-    - linux-i686
-    - test-i686
+variables:
+  CONAN_VERSION: "2.4.1"
+  PYTHON_VERSION: "3.6.13"
+
+workflow:
+  rules:
+    - if: $CI_PIPELINE_SOURCE == "schedule"
+    - if: $CI_PIPELINE_SOURCE == "web"
+    - if: $CI_COMMIT_TAG
+
+stages:
+  - build
+  - test
+  - package
+
+.build:
+  stage: build
+  script:
+    # Install prerequisites for pyinstaller
+    - yum install -y zlib-devel
+    # Install python 3
+    - curl -s -L -o ${PYTHON_ROOT}.zip https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/python3/-/jobs/artifacts/3.6.13/download?job=${PLATFORM}
+    - unzip -q ${PYTHON_ROOT}.zip -d ${CI_PROJECT_DIR}
+    - rm -f ${PYTHON_ROOT}.zip
+    - export PATH=${CI_PROJECT_DIR}/${PYTHON_ROOT}/bin:$PATH
+    - export LD_LIBRARY_PATH=${CI_PROJECT_DIR}/${PYTHON_ROOT}/lib
+    # Install source of conan
+    - curl -s -L -o conan-${CONAN_VERSION}.zip https://github.com/conan-io/conan/archive/refs/tags/${CONAN_VERSION}.zip
+    - unzip -q conan-${CONAN_VERSION}.zip
+    - cd ${CI_PROJECT_DIR}/conan-${CONAN_VERSION}
+    - pip install -e .
+    - python pyinstaller.py
+    - mv ${CI_PROJECT_DIR}/conan-${CONAN_VERSION}/pyinstaller/dist/conan ${CI_PROJECT_DIR}/${CONAN_ROOT}
+    # Add Sectigo CA certificates 
+    - cat ${CI_PROJECT_DIR}/conan_synchrotron-soleil_fr_interm.cer >> ${CI_PROJECT_DIR}/${CONAN_ROOT}/certifi/cacert.pem
+  artifacts:
+    name: ${CONAN_ROOT}
+    paths:
+      - ${CONAN_ROOT}
+
+.test:
+  stage: test
+  script:
+    - ${CI_PROJECT_DIR}/${CONAN_ROOT}/conan --version | grep ${CONAN_VERSION}
+
+.package:
+  stage: package
+  script:
+    - cd ${CI_PROJECT_DIR}/${CONAN_ROOT}
+    - zip -r --symlinks ../${CONAN_ROOT}.zip *
+    - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ../${CONAN_ROOT}.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/conan/${CONAN_VERSION}/${CONAN_ROOT}"'
+
+linux-x86_64:
+  extends: [".build"]
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44
+  variables:
+    PLATFORM: "linux-x86_64"
+    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
+    PYTHON_ROOT: "python-${PYTHON_VERSION}-${PLATFORM}"
+
+test-x86_64:
+  extends: [".test"]
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44
+  variables:
+    PLATFORM: "linux-x86_64"
+    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
+    PYTHON_ROOT: "python-${PYTHON_VERSION}-${PLATFORM}"
+  needs:
+    - linux-x86_64
+
+package-x86_64:
+  extends: [".package"]
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44
+  variables:
+    PLATFORM: "linux-x86_64"
+    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
+  needs:
+    - linux-x86_64
+    - test-x86_64
+
+linux-i686:
+  extends: [".build"]
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86
+  variables:
+    PLATFORM: "linux-i686"
+    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
+    PYTHON_ROOT: "python-${PYTHON_VERSION}-${PLATFORM}"
+
+test-i686:
+  extends: [".test"]
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86
+  variables:
+    PLATFORM: "linux-i686"
+    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
+    PYTHON_ROOT: "python-${PYTHON_VERSION}-${PLATFORM}"
+  needs:
+    - linux-i686
+
+package-i686:
+  extends: [".package"]
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86
+  variables:
+    PLATFORM: "linux-i686"
+    CONAN_ROOT: "conan-${CONAN_VERSION}-${PLATFORM}"
+    PYTHON_ROOT: "python-${PYTHON_VERSION}-${PLATFORM}"
+  needs:
+    - linux-i686
+    - test-i686
diff --git a/README.md b/README.md
index 36d2426..0b98d4b 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,24 @@
-# Conan
-
-## Pipeline to create Conan package for Linux
-
-Conan 2.0.17 for:
-* Linux 32 bits: [conan-2.0.17-linux-i686.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/conan/-/jobs/artifacts/2.0.17/download?job=linux-i686)
-* Linux 64 bits: [conan-2.0.17-linux-x86_64.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/git/-/jobs/artifacts/2.0.17/download?job=linux-x86_64)
-
-## Python script to create Conan package for Windows 32 bits
-
-The script `build-windows-i386.py` allows to build Conan package for Windows 7 32 bits.
-
-Prerequisites on path on the build host:
-* Python
-* Git
-
-To launch build:
-```
-python build-windows-i386.py
-```
-
-The build deliveries the archive `build\conan-2.0.17-windows-i386.zip`
-
-Tested with python 3.6 on Windows 7 32 bits. Warning, it is mandatory to use installed version python on Windows 7 to include all dll in package with PytInstaller.
+# Conan
+
+## Pipeline to create Conan package for Linux
+
+Conan 2.4.1 for:
+* Linux 32 bits: [conan-2.4.1-linux-i686.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/conan/-/jobs/artifacts/2.4.1/download?job=linux-i686)
+* Linux 64 bits: [conan-2.4.1-linux-x86_64.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/git/-/jobs/artifacts/2.4.1/download?job=linux-x86_64)
+
+## Python script to create Conan package for Windows 32 bits
+
+The script `build-windows-i386.py` allows to build Conan package for Windows 7 32 bits.
+
+Prerequisites on path on the build host:
+* Python
+* Git
+
+To launch build:
+```
+python build-windows-i386.py
+```
+
+The build deliveries the archive `build\conan-2.4.1-windows-i386.zip`
+
+Tested with python 3.6 on Windows 7 32 bits. Warning, it is mandatory to use installed version python on Windows 7 to include all dll in package with PytInstaller.
diff --git a/build-windows-i386.py b/build-windows-i386.py
index c66a656..a2ba6de 100644
--- a/build-windows-i386.py
+++ b/build-windows-i386.py
@@ -1,34 +1,34 @@
-import os
-import subprocess
-import urllib.request
-import shutil
-
-CONAN_VERSION = '2.0.17'
-
-CONAN_ROOT = os.path.dirname(os.path.abspath(__file__))
-
-# Remove and recreate build directory
-BUILD_DIR=os.path.join(CONAN_ROOT, 'build')
-os.system(f"rmdir /s /q {BUILD_DIR} > nul 2>&1")
-os.makedirs(BUILD_DIR)
-os.chdir(BUILD_DIR)
-
-# Build Conan with PyInstaller
-conan_dir = os.path.join(BUILD_DIR, 'conan_src')
-subprocess.check_call(['git', 'clone', 'https://github.com/conan-io/conan', conan_dir])
-subprocess.check_call(['git', 'checkout', CONAN_VERSION], cwd=conan_dir)
-subprocess.check_call(['pip', 'install', '-e', conan_dir])
-subprocess.check_call(['python', 'pyinstaller.py'], cwd=conan_dir)
-conan_exe = os.path.join(conan_dir, 'pyinstaller', 'dist', 'conan', 'conan.exe')
-subprocess.check_call([conan_exe, '--version'])
-
-# Add Sectigo CA certificates to Conan CA certificates
-cacert_sectigo=os.path.join(CONAN_ROOT, 'conan_synchrotron-soleil_fr_interm.cer')
-cacert=os.path.join(conan_dir, 'pyinstaller', 'dist', 'conan', 'certifi', 'cacert.pem')
-with open(cacert_sectigo, 'r') as f1:
-    with open(cacert, 'a') as f2:
-        f2.write(f1.read())
-
-# Make archive
-shutil.make_archive(os.path.join(BUILD_DIR, f'conan-{CONAN_VERSION}-windows-i386'), 'zip',
-                    os.path.join(conan_dir, 'pyinstaller', 'dist', 'conan')) 
+import os
+import subprocess
+import urllib.request
+import shutil
+
+CONAN_VERSION = '2.4.1'
+
+CONAN_ROOT = os.path.dirname(os.path.abspath(__file__))
+
+# Remove and recreate build directory
+BUILD_DIR=os.path.join(CONAN_ROOT, 'build')
+os.system(f"rmdir /s /q {BUILD_DIR} > nul 2>&1")
+os.makedirs(BUILD_DIR)
+os.chdir(BUILD_DIR)
+
+# Build Conan with PyInstaller
+conan_dir = os.path.join(BUILD_DIR, 'conan_src')
+subprocess.check_call(['git', 'clone', 'https://github.com/conan-io/conan', conan_dir])
+subprocess.check_call(['git', 'checkout', CONAN_VERSION], cwd=conan_dir)
+subprocess.check_call(['pip', 'install', '-e', conan_dir])
+subprocess.check_call(['python', 'pyinstaller.py'], cwd=conan_dir)
+conan_exe = os.path.join(conan_dir, 'pyinstaller', 'dist', 'conan', 'conan.exe')
+subprocess.check_call([conan_exe, '--version'])
+
+# Add Sectigo CA certificates to Conan CA certificates
+cacert_sectigo=os.path.join(CONAN_ROOT, 'conan_synchrotron-soleil_fr_interm.cer')
+cacert=os.path.join(conan_dir, 'pyinstaller', 'dist', 'conan', 'certifi', 'cacert.pem')
+with open(cacert_sectigo, 'r') as f1:
+    with open(cacert, 'a') as f2:
+        f2.write(f1.read())
+
+# Make archive
+shutil.make_archive(os.path.join(BUILD_DIR, f'conan-{CONAN_VERSION}-windows-i386'), 'zip',
+                    os.path.join(conan_dir, 'pyinstaller', 'dist', 'conan')) 
diff --git a/conan_synchrotron-soleil_fr_interm.cer b/conan_synchrotron-soleil_fr_interm.cer
index 2489fe6..2adf773 100644
--- a/conan_synchrotron-soleil_fr_interm.cer
+++ b/conan_synchrotron-soleil_fr_interm.cer
@@ -1,96 +1,96 @@
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
-YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
-MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
-BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
-GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
-BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
-3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
-YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
-rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
-ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
-oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
-QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
-b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
-AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
-GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
-G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
-l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
-smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7
-MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
-VQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UE
-AwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTE5MDMxMjAwMDAwMFoXDTI4
-MTIzMTIzNTk1OVowgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5
-MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBO
-ZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sI
-s9CsVw127c0n00ytUINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnG
-vDoZtF+mvX2do2NCtnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQ
-Ijy8/hPwhxR79uQfjtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfb
-IWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0
-tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97E
-xwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNV
-icQNwZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5
-D9kCnusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJ
-WBp/kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ
-5lhCLkMaTLTwJUdZ+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzG
-KAgEJTm4Diup8kyXHAc/DVL17e8vgg8CAwEAAaOB8jCB7zAfBgNVHSMEGDAWgBSg
-EQojPpbxB+zirynvgqV/0DCktDAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rID
-ZsswDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAG
-BgRVHSAAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29t
-L0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggr
-BgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUA
-A4IBAQAYh1HcdCE9nIrgJ7cz0C7M7PDmy14R3iJvm3WOnnL+5Nb+qh+cli3vA0p+
-rvSNb3I8QzvAP+u431yqqcau8vzY7qN7Q/aGNnwU4M309z/+3ri0ivCRlv79Q2R+
-/czSAaF9ffgZGclCKxO/WIu6pKJmBHaIkU4MiRTOok3JMrO66BQavHHxW/BBC5gA
-CiIDEOUMsfnNkjcZ7Tvx5Dq2+UUTJnWvu6rvP3t3O9LEApE9GQDTF1w52z97GA1F
-zZOFli9d31kWTz9RvdVFGD/tSo7oBmF0Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyA
-vGp4z7h/jnZymQyd/teRCBaho1+V
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIG5TCCBM2gAwIBAgIRANpDvROb0li7TdYcrMTz2+AwDQYJKoZIhvcNAQEMBQAw
-gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
-ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
-VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTIw
-MDIxODAwMDAwMFoXDTMzMDUwMTIzNTk1OVowRDELMAkGA1UEBhMCTkwxGTAXBgNV
-BAoTEEdFQU5UIFZlcmVuaWdpbmcxGjAYBgNVBAMTEUdFQU5UIE9WIFJTQSBDQSA0
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApYhi1aEiPsg9ZKRMAw9Q
-r8Mthsr6R20VSfFeh7TgwtLQi6RSRLOh4or4EMG/1th8lijv7xnBMVZkTysFiPmT
-PiLOfvz+QwO1NwjvgY+Jrs7fSoVA/TQkXzcxu4Tl3WHi+qJmKLJVu/JOuHud6mOp
-LWkIbhODSzOxANJ24IGPx9h4OXDyy6/342eE6UPXCtJ8AzeumTG6Dfv5KVx24lCF
-TGUzHUB+j+g0lSKg/Sf1OzgCajJV9enmZ/84ydh48wPp6vbWf1H0O3Rd3LhpMSVn
-TqFTLKZSbQeLcx/l9DOKZfBCC9ghWxsgTqW9gQ7v3T3aIfSaVC9rnwVxO0VjmDdP
-FNbdoxnh0zYwf45nV1QQgpRwZJ93yWedhp4ch1a6Ajwqs+wv4mZzmBSjovtV0mKw
-d+CQbSToalEUP4QeJq4Udz5WNmNMI4OYP6cgrnlJ50aa0DZPlJqrKQPGL69KQQz1
-2WgxvhCuVU70y6ZWAPopBa1ykbsttpLxADZre5cH573lIuLHdjx7NjpYIXRx2+QJ
-URnX2qx37eZIxYXz8ggM+wXH6RDbU3V2o5DP67hXPHSAbA+p0orjAocpk2osxHKo
-NSE3LCjNx8WVdxnXvuQ28tKdaK69knfm3bB7xpdfsNNTPH9ElcjscWZxpeZ5Iij8
-lyrCG1z0vSWtSBsgSnUyG/sCAwEAAaOCAYswggGHMB8GA1UdIwQYMBaAFFN5v1qq
-K0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBRvHTVJEGwy+lmgnryK6B+VvnF6DDAO
-BgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggr
-BgEFBQcDAQYIKwYBBQUHAwIwOAYDVR0gBDEwLzAtBgRVHSAAMCUwIwYIKwYBBQUH
-AgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMFAGA1UdHwRJMEcwRaBDoEGGP2h0
-dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9u
-QXV0aG9yaXR5LmNybDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6
-Ly9jcnQudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAl
-BggrBgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0B
-AQwFAAOCAgEAUtlC3e0xj/1BMfPhdQhUXeLjb0xp8UE28kzWE5xDzGKbfGgnrT2R
-lw5gLIx+/cNVrad//+MrpTppMlxq59AsXYZW3xRasrvkjGfNR3vt/1RAl8iI31lG
-hIg6dfIX5N4esLkrQeN8HiyHKH6khm4966IkVVtnxz5CgUPqEYn4eQ+4eeESrWBh
-AqXaiv7HRvpsdwLYekAhnrlGpioZ/CJIT2PTTxf+GHM6cuUnNqdUzfvrQgA8kt1/
-ASXx2od/M+c8nlJqrGz29lrJveJOSEMX0c/ts02WhsfMhkYa6XujUZLmvR1Eq08r
-48/EZ4l+t5L4wt0DV8VaPbsEBF1EOFpz/YS2H6mSwcFaNJbnYqqJHIvm3PLJHkFm
-EoLXRVrQXdCT+3wgBfgU6heCV5CYBz/YkrdWES7tiiT8sVUDqXmVlTsbiRNiyLs2
-bmEWWFUl76jViIJog5fongEqN3jLIGTG/mXrJT1UyymIcobnIGrbwwRVz/mpFQo0
-vBYIi1k2ThVh0Dx88BbF9YiP84dd8Fkn5wbE6FxXYJ287qfRTgmhePecPc73Yrzt
-apdRcsKVGkOpaTIJP/l+lAHRLZxk/dUtyN95G++bOSQqnOCpVPabUGl2E/OEyFrp
-Ipwgu2L/WJclvd6g+ZA/iWkLSMcpnFb+uX6QBqvD6+RNxul1FaB5iHY=
------END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
+MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
+GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
+YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
+MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
+BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
+GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
+BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
+3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
+YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
+rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
+ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
+oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
+MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
+QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
+b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
+AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
+GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
+Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
+G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
+l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
+smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7
+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
+VQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UE
+AwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTE5MDMxMjAwMDAwMFoXDTI4
+MTIzMTIzNTk1OVowgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5
+MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBO
+ZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sI
+s9CsVw127c0n00ytUINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnG
+vDoZtF+mvX2do2NCtnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQ
+Ijy8/hPwhxR79uQfjtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfb
+IWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0
+tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97E
+xwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNV
+icQNwZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5
+D9kCnusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJ
+WBp/kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ
+5lhCLkMaTLTwJUdZ+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzG
+KAgEJTm4Diup8kyXHAc/DVL17e8vgg8CAwEAAaOB8jCB7zAfBgNVHSMEGDAWgBSg
+EQojPpbxB+zirynvgqV/0DCktDAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rID
+ZsswDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAG
+BgRVHSAAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29t
+L0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggr
+BgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUA
+A4IBAQAYh1HcdCE9nIrgJ7cz0C7M7PDmy14R3iJvm3WOnnL+5Nb+qh+cli3vA0p+
+rvSNb3I8QzvAP+u431yqqcau8vzY7qN7Q/aGNnwU4M309z/+3ri0ivCRlv79Q2R+
+/czSAaF9ffgZGclCKxO/WIu6pKJmBHaIkU4MiRTOok3JMrO66BQavHHxW/BBC5gA
+CiIDEOUMsfnNkjcZ7Tvx5Dq2+UUTJnWvu6rvP3t3O9LEApE9GQDTF1w52z97GA1F
+zZOFli9d31kWTz9RvdVFGD/tSo7oBmF0Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyA
+vGp4z7h/jnZymQyd/teRCBaho1+V
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG5TCCBM2gAwIBAgIRANpDvROb0li7TdYcrMTz2+AwDQYJKoZIhvcNAQEMBQAw
+gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
+ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
+VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTIw
+MDIxODAwMDAwMFoXDTMzMDUwMTIzNTk1OVowRDELMAkGA1UEBhMCTkwxGTAXBgNV
+BAoTEEdFQU5UIFZlcmVuaWdpbmcxGjAYBgNVBAMTEUdFQU5UIE9WIFJTQSBDQSA0
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApYhi1aEiPsg9ZKRMAw9Q
+r8Mthsr6R20VSfFeh7TgwtLQi6RSRLOh4or4EMG/1th8lijv7xnBMVZkTysFiPmT
+PiLOfvz+QwO1NwjvgY+Jrs7fSoVA/TQkXzcxu4Tl3WHi+qJmKLJVu/JOuHud6mOp
+LWkIbhODSzOxANJ24IGPx9h4OXDyy6/342eE6UPXCtJ8AzeumTG6Dfv5KVx24lCF
+TGUzHUB+j+g0lSKg/Sf1OzgCajJV9enmZ/84ydh48wPp6vbWf1H0O3Rd3LhpMSVn
+TqFTLKZSbQeLcx/l9DOKZfBCC9ghWxsgTqW9gQ7v3T3aIfSaVC9rnwVxO0VjmDdP
+FNbdoxnh0zYwf45nV1QQgpRwZJ93yWedhp4ch1a6Ajwqs+wv4mZzmBSjovtV0mKw
+d+CQbSToalEUP4QeJq4Udz5WNmNMI4OYP6cgrnlJ50aa0DZPlJqrKQPGL69KQQz1
+2WgxvhCuVU70y6ZWAPopBa1ykbsttpLxADZre5cH573lIuLHdjx7NjpYIXRx2+QJ
+URnX2qx37eZIxYXz8ggM+wXH6RDbU3V2o5DP67hXPHSAbA+p0orjAocpk2osxHKo
+NSE3LCjNx8WVdxnXvuQ28tKdaK69knfm3bB7xpdfsNNTPH9ElcjscWZxpeZ5Iij8
+lyrCG1z0vSWtSBsgSnUyG/sCAwEAAaOCAYswggGHMB8GA1UdIwQYMBaAFFN5v1qq
+K0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBRvHTVJEGwy+lmgnryK6B+VvnF6DDAO
+BgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggr
+BgEFBQcDAQYIKwYBBQUHAwIwOAYDVR0gBDEwLzAtBgRVHSAAMCUwIwYIKwYBBQUH
+AgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMFAGA1UdHwRJMEcwRaBDoEGGP2h0
+dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9u
+QXV0aG9yaXR5LmNybDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6
+Ly9jcnQudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAl
+BggrBgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0B
+AQwFAAOCAgEAUtlC3e0xj/1BMfPhdQhUXeLjb0xp8UE28kzWE5xDzGKbfGgnrT2R
+lw5gLIx+/cNVrad//+MrpTppMlxq59AsXYZW3xRasrvkjGfNR3vt/1RAl8iI31lG
+hIg6dfIX5N4esLkrQeN8HiyHKH6khm4966IkVVtnxz5CgUPqEYn4eQ+4eeESrWBh
+AqXaiv7HRvpsdwLYekAhnrlGpioZ/CJIT2PTTxf+GHM6cuUnNqdUzfvrQgA8kt1/
+ASXx2od/M+c8nlJqrGz29lrJveJOSEMX0c/ts02WhsfMhkYa6XujUZLmvR1Eq08r
+48/EZ4l+t5L4wt0DV8VaPbsEBF1EOFpz/YS2H6mSwcFaNJbnYqqJHIvm3PLJHkFm
+EoLXRVrQXdCT+3wgBfgU6heCV5CYBz/YkrdWES7tiiT8sVUDqXmVlTsbiRNiyLs2
+bmEWWFUl76jViIJog5fongEqN3jLIGTG/mXrJT1UyymIcobnIGrbwwRVz/mpFQo0
+vBYIi1k2ThVh0Dx88BbF9YiP84dd8Fkn5wbE6FxXYJ287qfRTgmhePecPc73Yrzt
+apdRcsKVGkOpaTIJP/l+lAHRLZxk/dUtyN95G++bOSQqnOCpVPabUGl2E/OEyFrp
+Ipwgu2L/WJclvd6g+ZA/iWkLSMcpnFb+uX6QBqvD6+RNxul1FaB5iHY=
+-----END CERTIFICATE-----
-- 
GitLab