parent
b4326788d7
commit
9484181f86
13
.travis.yml
13
.travis.yml
|
@ -1,16 +1,25 @@
|
|||
language: shell
|
||||
sudo: required
|
||||
|
||||
cache:
|
||||
ccache: true
|
||||
directories:
|
||||
- $HOME/.ccache
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- CHECK=format
|
||||
- CHECK=docs
|
||||
- CHECK=build TYPE=debug COMPILER=g++
|
||||
- CHECK=build TYPE=release COMPILER=g++
|
||||
- CHECK=build TYPE=debug COMPILER=clang++
|
||||
- CHECK=build TYPE=release COMPILER=clang++
|
||||
|
||||
install:
|
||||
- sudo resources/travis/setup.sh $CHECK
|
||||
- sudo -E resources/travis/setup.sh
|
||||
|
||||
script:
|
||||
- sudo resources/travis/build.sh $CHECK
|
||||
- sudo -E resources/travis/build.sh
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
|
|
|
@ -37,7 +37,7 @@ ELSE()
|
|||
ENDIF()
|
||||
|
||||
|
||||
PROJECT(AusweisApp2 VERSION 1.16.1 LANGUAGES ${LANGUAGES})
|
||||
PROJECT(AusweisApp2 VERSION 1.16.2 LANGUAGES ${LANGUAGES})
|
||||
|
||||
# Set TWEAK if not defined in PROJECT_VERSION above to
|
||||
# have a valid tweak version without propagating it
|
||||
|
@ -110,7 +110,7 @@ SET(SRC_DIR ${PROJECT_SOURCE_DIR}/src)
|
|||
SET(TEST_DIR ${PROJECT_SOURCE_DIR}/test)
|
||||
SET(RESOURCES_DIR ${PROJECT_SOURCE_DIR}/resources)
|
||||
SET(PACKAGING_DIR ${RESOURCES_DIR}/packaging)
|
||||
SET(COPYRIGHT_TEXT "Ⓒ\; 2014-2018 ${VENDOR}")
|
||||
SET(COPYRIGHT_TEXT "Ⓒ\; 2014-2019 ${VENDOR}")
|
||||
STRING(REPLACE " \& " " \& " COPYRIGHT_TEXT ${COPYRIGHT_TEXT})
|
||||
|
||||
INCLUDE(Tools)
|
||||
|
|
|
@ -24,7 +24,7 @@ Die AusweisApp2 und alle ihre Bestandteile dienen ausschließlich dazu, im Zusam
|
|||
(2) Es liegt im eigenen Interesse des Nutzers aber auch des Bundes, dass stets nur die neueste Version der AusweisApp2 (siehe § 5) verwendet wird.
|
||||
|
||||
§ 5 Pflege und Support
|
||||
(1) Der Bund bietet nach eigenem Ermessen und ohne hierzu verpflichtet zu sein für Teile der AusweisApp2 zusätzliche kostenfreie Supportleistungen in Form von Dokumentationen und online Hilfen auf dem AusweisApp2-Portal im Internet unter der Adresse www.ausweisapp.bund.de an, sowie über die Hotline des Herstellers Governikus unter der E-Mail-Adresse: support@ausweisapp.de und der Tel.-Nr.: +49 1805 348 743. Auch stellt er verfügbare neue Versionen der AusweisApp2 zur Verfügung. Hieraus erwächst jedoch kein zusätzlicher Anspruch auf Mängelbeseitigung, auf Zertifizierung, auf Beibehaltung der Supportleistungen oder der Hotline und auf Überlassung neuer Versionen.
|
||||
(1) Der Bund bietet nach eigenem Ermessen und ohne hierzu verpflichtet zu sein für Teile der AusweisApp2 zusätzliche kostenfreie Supportleistungen in Form von Dokumentationen und online Hilfen auf dem AusweisApp2-Portal im Internet unter der Adresse www.ausweisapp.bund.de an, sowie über die Hotline des Herstellers Governikus unter der E-Mail-Adresse: support@ausweisapp.de und der Tel.-Nr.: +49 421 204 95-995. Auch stellt er verfügbare neue Versionen der AusweisApp2 zur Verfügung. Hieraus erwächst jedoch kein zusätzlicher Anspruch auf Mängelbeseitigung, auf Zertifizierung, auf Beibehaltung der Supportleistungen oder der Hotline und auf Überlassung neuer Versionen.
|
||||
(2) Verfügbare neue Versionen der AusweisApp2 können im Internet kostenfrei auf dem AusweisApp2-Portal unter der Adresse www.ausweisapp.bund.de sowie über allgemein zugängliche AppStore heruntergeladen werden.
|
||||
(3) Eventuelle Mängel der AusweisApp2 werden grundsätzlich dadurch behoben, dass der Bund jeweils eine neue Version der AusweisApp2 zum Herunterladen zur Verfügung stellt (siehe § 5 Absatz 1). Eine Pflicht zur Bereitstellung von neuen Versionen ergibt sich daraus grundsätzlich nicht.
|
||||
|
||||
|
|
12
appveyor.yml
12
appveyor.yml
|
@ -5,27 +5,27 @@ environment:
|
|||
- PlatformToolset: mingw-w64
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
QTPath: C:\Qt\5.11\mingw53_32
|
||||
OPENSSLPath: C:\OpenSSL-v11-Win32
|
||||
OPENSSLPath: C:\OpenSSL-v111-Win32
|
||||
|
||||
- PlatformToolset: v140
|
||||
platform: x64
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
QTPath: C:\Qt\5.11\msvc2015_64
|
||||
OPENSSLPath: C:\OpenSSL-v11-Win64
|
||||
OPENSSLPath: C:\OpenSSL-v111-Win64
|
||||
ARCHI: amd64
|
||||
|
||||
- PlatformToolset: v140
|
||||
platform: Win32
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
QTPath: C:\Qt\5.11\msvc2015
|
||||
OPENSSLPath: C:\OpenSSL-v11-Win32
|
||||
OPENSSLPath: C:\OpenSSL-v111-Win32
|
||||
ARCHI: x86
|
||||
|
||||
- PlatformToolset: v141
|
||||
platform: x64
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
QTPath: C:\Qt\5.11\msvc2017_64
|
||||
OPENSSLPath: C:\OpenSSL-v11-Win64
|
||||
OPENSSLPath: C:\OpenSSL-v111-Win64
|
||||
ARCHI: amd64
|
||||
|
||||
configuration:
|
||||
|
@ -58,7 +58,7 @@ before_build:
|
|||
build_script:
|
||||
- cd "%APPVEYOR_BUILD_FOLDER%"
|
||||
- set OPENSSL_ROOT=%OPENSSLPath%
|
||||
- set PATH=%QTPATH%;%QTPATH%/bin;%OPENSSLPath%;%PATH%
|
||||
- set PATH=%PATH%;%QTPATH%;%QTPATH%/bin;%OPENSSLPath%
|
||||
- echo %PATH%
|
||||
- echo %OPENSSL_ROOT%
|
||||
- mkdir _build
|
||||
|
@ -76,7 +76,7 @@ build_script:
|
|||
|
||||
test_script:
|
||||
- cd "%APPVEYOR_BUILD_FOLDER%"/_build
|
||||
- set PATH=%QTPATH%;%QTPATH%/bin;%PATH%
|
||||
- set PATH=%PATH%;%QTPATH%;%QTPATH%/bin
|
||||
- echo %PATH%
|
||||
- ctest --output-on-failure -C "%CONFIGURATION%"
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ IF(CMAKE_VERSION VERSION_LESS "3.12")
|
|||
ADD_DEFINITIONS(-DQT_RESTRICTED_CAST_FROM_ASCII)
|
||||
ELSE()
|
||||
ADD_COMPILE_DEFINITIONS($<$<CONFIG:Debug>:QT_RESTRICTED_CAST_FROM_ASCII>)
|
||||
ADD_COMPILE_DEFINITIONS($<$<CONFIG:Release>:QT_NO_CAST_FROM_ASCII>)
|
||||
ADD_COMPILE_DEFINITIONS($<$<NOT:$<CONFIG:Debug>>:QT_NO_CAST_FROM_ASCII>)
|
||||
ENDIF()
|
||||
|
||||
IF(QT_VENDOR STREQUAL "Governikus")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
SET(REMOTE_CONFIG_URL_PROD https://appl.governikus-asp.de/ausweisapp2)
|
||||
IF(JENKINS_APPCAST)
|
||||
SET(REMOTE_CONFIG_URL https://vtf-aajenkins.tf.bos-test.de/job/${JENKINS_APPCAST}/lastSuccessfulBuild/artifact CACHE STRING "Remote config download URL" FORCE)
|
||||
SET(REMOTE_CONFIG_URL https://ausweisapp-ci.govkg.de/job/${JENKINS_APPCAST}/lastSuccessfulBuild/artifact CACHE STRING "Remote config download URL" FORCE)
|
||||
ELSE()
|
||||
SET(REMOTE_CONFIG_URL ${REMOTE_CONFIG_URL_PROD} CACHE STRING "Remote config download URL" FORCE)
|
||||
ENDIF()
|
||||
|
|
|
@ -163,8 +163,13 @@ ELSEIF(APPLE AND NOT IOS)
|
|||
|
||||
FETCH_TARGET_LOCATION(opensslCryptoName "OpenSSL::Crypto" NAME)
|
||||
FETCH_TARGET_LOCATION(opensslSslName "OpenSSL::SSL" NAME)
|
||||
LIST(APPEND ADDITIONAL_BUNDLE_FILES_TO_SIGN "/Contents/MacOS/${opensslCryptoName}")
|
||||
LIST(APPEND ADDITIONAL_BUNDLE_FILES_TO_SIGN "/Contents/MacOS/${opensslSslName}")
|
||||
IF(CMAKE_VERSION VERSION_LESS "3.13")
|
||||
SET(OPENSSL_LIB_LOCATION "/Contents/MacOS")
|
||||
ELSE()
|
||||
SET(OPENSSL_LIB_LOCATION "/Contents/Frameworks")
|
||||
ENDIF()
|
||||
LIST(APPEND ADDITIONAL_BUNDLE_FILES_TO_SIGN "${OPENSSL_LIB_LOCATION}/${opensslCryptoName}")
|
||||
LIST(APPEND ADDITIONAL_BUNDLE_FILES_TO_SIGN "${OPENSSL_LIB_LOCATION}/${opensslSslName}")
|
||||
|
||||
# set it to parent scope to be able to access it from Packaging.cmake
|
||||
SET(ADDITIONAL_BUNDLE_FILES_TO_SIGN ${ADDITIONAL_BUNDLE_FILES_TO_SIGN} PARENT_SCOPE)
|
||||
|
|
|
@ -38,6 +38,7 @@ SET(CPACK_PACKAGE_CONTACT "info@governikus.com")
|
|||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Governikus AusweisApp2")
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.rst")
|
||||
SET(CPACK_PACKAGE_FILE_NAME ${FILENAME})
|
||||
SET(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME})
|
||||
|
||||
IF(VENDOR_GOVERNIKUS)
|
||||
SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.officially.txt")
|
||||
|
@ -90,6 +91,8 @@ IF(WIN32)
|
|||
SET(CPACK_WIX_UI_DIALOG ${RESOURCES_DIR}/images/wix_dialog.jpg)
|
||||
SET(CPACK_WIX_EXTENSIONS WixUtilExtension)
|
||||
SET(CPACK_WIX_LIGHT_EXTRA_FLAGS -loc ${PACKAGING_DIR}/win/WIX.Texts.de-DE.wxl -loc ${PACKAGING_DIR}/win/WIX.Texts.en-US.wxl)
|
||||
# suppress warning LGHT1076/ICE61 caused by AllowSameVersionUpgrades
|
||||
SET(CPACK_WIX_LIGHT_EXTRA_FLAGS -sw1076 ${CPACK_WIX_LIGHT_EXTRA_FLAGS})
|
||||
|
||||
IF(SIGNTOOL_CMD)
|
||||
MESSAGE(STATUS "MSI can be signed with 'make package.sign'")
|
||||
|
@ -185,9 +188,10 @@ ELSEIF(ANDROID)
|
|||
MESSAGE(STATUS "Prepare ${ANDROID_FILE_EXT} file generation")
|
||||
|
||||
IF(${CMAKE_BUILD_TYPE} STREQUAL "RELEASE" OR ${CMAKE_BUILD_TYPE} STREQUAL "RELWITHDEBINFO" OR ${CMAKE_BUILD_TYPE} STREQUAL "MINSIZEREL")
|
||||
SET(DEPLOY_CMD_SIGN --release)
|
||||
|
||||
IF(ANDROID_BUILD_AAR)
|
||||
SET(ANDROID_FILE dist-release.aar)
|
||||
SET(DEPLOY_CMD_SIGN --release)
|
||||
ELSEIF(APK_SIGN_KEYSTORE AND APK_SIGN_KEYSTORE_ALIAS AND APK_SIGN_KEYSTORE_PSW)
|
||||
MESSAGE(STATUS "Release build will be signed using: ${APK_SIGN_KEYSTORE} | Alias: ${APK_SIGN_KEYSTORE_ALIAS}")
|
||||
SET(DEPLOY_CMD_SIGN --sign ${APK_SIGN_KEYSTORE} ${APK_SIGN_KEYSTORE_ALIAS} --storepass ${APK_SIGN_KEYSTORE_PSW} --digestalg SHA-256 --sigalg SHA256WithRSA)
|
||||
|
@ -197,7 +201,13 @@ ELSEIF(ANDROID)
|
|||
SET(ANDROID_FILE QtApp-release-signed.apk)
|
||||
ENDIF()
|
||||
ELSE()
|
||||
MESSAGE(FATAL_ERROR "Cannot sign release build! Set APK_SIGN_KEYSTORE, APK_SIGN_KEYSTORE_ALIAS and APK_SIGN_KEYSTORE_PSW!")
|
||||
IF(ANDROID_USE_GRADLE)
|
||||
SET(ANDROID_FILE dist-release-unsigned.apk)
|
||||
ELSE()
|
||||
SET(ANDROID_FILE QtApp-release-unsigned.apk)
|
||||
ENDIF()
|
||||
|
||||
MESSAGE(WARNING "Cannot sign release build! Set APK_SIGN_KEYSTORE, APK_SIGN_KEYSTORE_ALIAS and APK_SIGN_KEYSTORE_PSW!")
|
||||
ENDIF()
|
||||
|
||||
ELSE()
|
||||
|
|
|
@ -140,7 +140,7 @@ IF(UNCRUSTIFY)
|
|||
EXECUTE_PROCESS(COMMAND ${UNCRUSTIFY} --version OUTPUT_VARIABLE UNCRUSTIFY_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
STRING(REPLACE "uncrustify " "" UNCRUSTIFY_VERSION ${UNCRUSTIFY_VERSION})
|
||||
|
||||
SET(UNCRUSTIFY_NEEDED_VERSION "0.67")
|
||||
SET(UNCRUSTIFY_NEEDED_VERSION "0.68")
|
||||
IF("${UNCRUSTIFY_VERSION}" STRLESS "${UNCRUSTIFY_NEEDED_VERSION}")
|
||||
MESSAGE(WARNING "Uncrustify seems to be too old. Use at least ${UNCRUSTIFY_NEEDED_VERSION}... you are using: ${UNCRUSTIFY_VERSION}")
|
||||
ELSE()
|
||||
|
|
|
@ -0,0 +1,228 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
|
||||
<!--Created by yEd 3.18.1-->
|
||||
<key attr.name="Beschreibung" attr.type="string" for="graph" id="d0"/>
|
||||
<key for="port" id="d1" yfiles.type="portgraphics"/>
|
||||
<key for="port" id="d2" yfiles.type="portgeometry"/>
|
||||
<key for="port" id="d3" yfiles.type="portuserdata"/>
|
||||
<key attr.name="url" attr.type="string" for="node" id="d4"/>
|
||||
<key attr.name="description" attr.type="string" for="node" id="d5"/>
|
||||
<key for="node" id="d6" yfiles.type="nodegraphics"/>
|
||||
<key for="graphml" id="d7" yfiles.type="resources"/>
|
||||
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
|
||||
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
|
||||
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
|
||||
<graph edgedefault="directed" id="G">
|
||||
<data key="d0" xml:space="preserve"/>
|
||||
<node id="n0">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="249.93318675648084" width="150.73691016175417" x="379.82322525840146" y="-15.0"/>
|
||||
<y:Fill color="#E0E0E0" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="90.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="49.609375" x="9.991977284848872" xml:space="preserve" y="146.38688006175698">Internet<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="0.5" nodeRatioX="-0.4337124711251771" nodeRatioY="0.2841945985857549" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle3d"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n1">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="402.28247680692664" width="162.91206076630084" x="130.0970161695911" y="-19.152021620717733"/>
|
||||
<y:Fill color="#E0E0E0" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="79.45603038315042" y="199.14123840346332">
|
||||
<y:LabelModel>
|
||||
<y:SmartNodeLabelModel distance="4.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="90.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="78.396484375" x="9.113003096740954" xml:space="preserve" y="308.695703503948">Lokales Netz<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="0.5" nodeRatioX="-0.4440618266451515" nodeRatioY="0.4622397449460143" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle3d"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n2">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="283.8426393358113" width="150.73691016175417" x="138.89277718906638" y="-15.0"/>
|
||||
<y:Fill color="#D0D0D0" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="90.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="97.181640625" x="8.098407213028707" xml:space="preserve" y="166.02446489063328">Lokaler Rechner<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="0.5" nodeRatioX="-0.44627455741040206" nodeRatioY="0.4272958641151755" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle3d"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n3">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="110.0" x="166.95265436079174" y="97.8883879466967"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="82.333984375" x="13.8330078125" xml:space="preserve" y="6.93359375">AusweisApp2<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n4">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="110.0" x="409.06939432176046" y="97.8883879466967"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="65.939453125" x="22.0302734375" xml:space="preserve" y="6.93359375">eID-Server<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n5">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="110.0" x="409.06939432176046" y="-7.134920941481575"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="89.060546875" x="10.4697265625" xml:space="preserve" y="6.93359375">Dienstanbieter<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n6">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="110.0" x="166.95265436079174" y="-7.1349209414815675"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.142578125" x="29.9287109375" xml:space="preserve" y="6.93359375">Browser<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n7">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="30.0" width="110.0" x="409.06939432176046" y="199.59487324412942"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="88.029296875" x="10.9853515625" xml:space="preserve" y="5.93359375">Update-Server<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n8">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="110.0" x="166.95265436079174" y="326.6678526626905"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="104.494140625" x="2.7529296875" xml:space="preserve" y="6.93359375">Mobiles Endgerät<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n9">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="101.0" x="171.45265436079177" y="202.91169683487496"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="97.7265625" x="1.63671875" xml:space="preserve" y="6.93359375">Drittanwendung<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<edge id="e0" source="n6" target="n5">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e1" source="n5" target="n4">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e2" source="n6" target="n3">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="30.71875" x="-34.70611583776903" xml:space="preserve" y="28.92603874253608">eID1<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="19.34674322102171" distanceToCenter="true" position="right" ratio="0.5329867452764283" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e3" source="n3" target="n4">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="30.71875" x="51.6604446461962" xml:space="preserve" y="-21.17213706476275">eID3<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="12.10572917405711" distanceToCenter="true" position="left" ratio="0.5105195151628484" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e4" source="n3" target="n8">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="54.54734563920826" sy="14.111612053303304" tx="26.398238238132535" ty="-16.02468140151575">
|
||||
<y:Point x="276.5" y="269.0"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="32.265625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="36.30859375" x="-59.09839513686407" xml:space="preserve" y="149.37254155441815">SaK1,
|
||||
SaK2 <y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="0.0" distance="1.8153536324476993" distanceToCenter="false" position="right" ratio="0.7870346060615276" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e5" source="n3" target="n7">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="54.971035876728166" sy="15.038770784339903" tx="-53.5611005145696" ty="-15.000980657566373"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" rotationAngle="22.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="45.220703125" x="46.57289611424528" xml:space="preserve" y="33.28619210241317">Update<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="11.307275195559956" distanceToCenter="true" position="right" ratio="0.6189315207731947" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e6" source="n5" target="n3">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="27.54734563920826" ty="-1.888387946696696"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" rotationAngle="337.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="30.71875" x="-101.58040528438903" xml:space="preserve" y="9.329639509720586">eID2<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="15.099869002821848" distanceToCenter="true" position="right" ratio="0.3864086416472374" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e7" source="n3" target="n9">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="53.359375" x="-55.679685116747294" xml:space="preserve" y="28.445254182778">eID-SDK<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="28.999999999999986" distanceToCenter="true" position="right" ratio="0.5222764299898304" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
</graph>
|
||||
<data key="d7">
|
||||
<y:Resources/>
|
||||
</data>
|
||||
</graphml>
|
|
@ -0,0 +1,486 @@
|
|||
%PDF-1.4
|
||||
%âãÏÓ
|
||||
1 0 obj
|
||||
<<
|
||||
/Title ()
|
||||
/Author ()
|
||||
/Subject ()
|
||||
/Keywords ()
|
||||
/Creator (yExport 1.5)
|
||||
/Producer (org.freehep.graphicsio.pdf.YPDFGraphics2D 1.5)
|
||||
/CreationDate (D:20190314162821+01'00')
|
||||
/ModDate (D:20190314162821+01'00')
|
||||
/Trapped /False
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/Type /Catalog
|
||||
/Pages 3 0 R
|
||||
/ViewerPreferences 4 0 R
|
||||
/OpenAction [5 0 R /Fit]
|
||||
>>
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/FitWindow true
|
||||
/CenterWindow false
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<<
|
||||
/Parent 3 0 R
|
||||
/Type /Page
|
||||
/Contents 6 0 R
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/Length 7 0 R
|
||||
/Filter [/ASCII85Decode /FlateDecode]
|
||||
>>
|
||||
stream
|
||||
Gb"07bDmmlYpD<3YG`ONb288R7KN^+E7KR^$OLorOO`PFrBDE3CRLU2hHAq,"!0?'JK13>8rk"O%s'OJ
|
||||
H[5T]kC5_Fb<LKu0<iuMrm/p:?U+Pga6SAmI^FuF*Ig)XT7$T^IDsg!^]+#S5Q9D_ci<RNIf9#Ura5Ka
|
||||
J,OlR?>9H;huEBDJ,_b5[ibEiJ,emX:QPPCJ)[rokN73ZmrS(aGFG!cCPMjcfDj^FJ'#7]eJ8,GduOg[
|
||||
09>7_d,4gC'<69T`Er9(7rRG`LG/Zph-8q0YJ9&nK>7E\0E9LepeQ83D&!#k&q$dk>5e9ncPc4js*b/W
|
||||
kPeTF]JGkHVN3q#%q#<kE_'rsKC'KDq#92g$2u>MI-XX8l1G/PLHj@b\$qlYQMi^<s$M/3c>W^O2hq/`
|
||||
Eh;=SlT^d7hu+Q_omp(ar7@M)We#PeqY,QUr*J3))qNnN;#cE%nW*YC./tEHrVI,.mIPfPQWc")lefJI
|
||||
<(lgmpRh8#]"6dtrJtjbo^dPsFP$@Ts2U2sO`RYf`?-<>d$aBkgTi2OlUPf7IDbb@VIa-a+)`hq5>#4K
|
||||
an[[3RE9Zc5$G)Ki:Tr[:T(n8RXX[c>]N"Vm5]Z.oX['Zr,H]ErR&28>0AI0DU-arEmQ3\j4X>bpte1*
|
||||
7-hu)?Z"sJ6\g0B>kBRdN9\'$N:[SJO-[cfY<sgQ%-Z6e#PC74X4GH[Fe>hBch5N&qT/Pq!_0QDO0m4i
|
||||
mP>Z%3r8bo3n22hN)q9tN^)71SNa.'cEi6I.rf6FO,^ou[a%JbN%$]UZ%dY?Y6<?6f<I0FmGKbGT?G8M
|
||||
Ho@l4FJ^S8R3[7tGi?CXZV`r%g>?kN\39kP#A/SYX+-?iS#?"eb_tr]j7L!4_tSM(rZ-UkC45"rRW4)0
|
||||
%tSVk[EdFE7g2$`IH'("Vap&4>RK]-q4P,U.k>a*9,pnd5'l>gO1k(*W@;HZASjWWC6^UJLXIn[H^rV9
|
||||
VgGkYCAqB,a.1tX5H'fqIpLJm=Yno_=Oj,CKA%KG%'%P<jWV7bb<naaj38FnTe2@7(24UH,eC=R"[4bD
|
||||
qEeslR-.<cd4/8k"NGk]h1l`hZRQDgo^jPCmF8e!<Z-omIl$df[&PYJUQ2ZX%N:c41iqQGGtAaOg%ot"
|
||||
Zdc5N8fcI0l*%$$\2I`!Jb.ZBaV3:&Z(JQd]uiboJ!T*dM8V!a5&ST=[?clFM.T[>17p_!O/n$h:!D+g
|
||||
V^G`_[$'H&a4S"\lSg;:`9*H8a!=/#i_8?qL=,2;rKj_F+l+,QY3#4Y_m);GU$+AKiS_0M@iHB%/a)$_
|
||||
)<7Y!b]mKDHZ6<6;_*%:4SrqQ+;!Er?lXP0G^Yh+1VRp"d)ZskH+pic*^'epAE`r7En>U&l/BQ64/gU(
|
||||
DnPhna7J598!N31P[VE`"%R#kGeN.)Ob:J_D+<faa'O/;7j$s&h\j7u@`=9Ge4XulFO9=?8t_rKk#GXf
|
||||
*E:d4$"PG0OPq&,Gurku)\*0bfH_#).5$1E_lS/1d(uc*QTte8gg.o><-H"hk`!6Z's61'-@p!i638$R
|
||||
X@+Q\V74Xsg=]sd3DXFG/*,esl_$#aj_=D7rT0C=HujDmBbb^A/l+R=Y2VS2+KUFi1e5j?$l`![0ACT?
|
||||
G0h/no!D#OlTD:9*)Ga$eT\"_[*sNlC#UqsUH:M4CX>60j_8@6&uhKc%C<FAo/&hNdt":MfZKi"1>3+R
|
||||
[5^rD]ui.@f'-+;mIIW:pZU"nWBD+po<l.l%AV80o!J#d;*HX/1MiQfitliJ9W&tRn&s2*]?]'(p%16t
|
||||
s5iQjnE"`,c"gS/V&^GEJeej%r=.#J2:pAp^=jI?E6[L;.P;4nm`77%_kANdb5M3tK2^Foml3.je$F5K
|
||||
.PqsZp\D]I>Q0BGp[nAF%aDtt1m`hq*Nkm%3O@8#k&Trbo?k.p6,k_tHrol3RYt\5\bN;kP%P@;C+ZfN
|
||||
f<tG86)`]I_%XdJ6Mpq`U4<&1c8#@7G;DVi%UE`AF:-ED[#Q,Uq!pY>ANTI@3\>jONpdMX_#s_H*oX'l
|
||||
ncAX*+7%>/>;4Fp5#D-oHMu--rpVk$qF;(o0p%!Is12-71m%0)s$#r8n(!u<@K!kCNN\T(iP.Ous1&C6
|
||||
g``VVU3(MSp1GKBY@@%Fn]Lt5aR48"=9l?!NpEO.oGp/VTga`o3/4$dWqR@!TYaO0;u^"YFC7eEnc2of
|
||||
+tcBo*r4QN13-\$M<F*8THkPDJN%\1NdhCsfc?dsmi<*,>6k)t,FT@G&tqfP%EOK)GU1$n"qXD*`99+E
|
||||
!<)I^7s_oD#U?>_r9?<'S]PE'E7,N]JAF2cB5q#NP4M<1IZE;i8!@h=QsE4ncG`CW*59_eVp5"XcMG@=
|
||||
Uf,hg[ed6Dg5MfjQ1.Z-kN5F\`]WWs?fK9@E>J(2D`o!Heb$C;YX5TUNid*[Qh0q7V8""$Nq>W&L5kuB
|
||||
GVG]S)hsMWGc3VmWqfKeEW!riUXRoH9aBL;[b>^\$*$,nZo#tFO7s_Rpu4s.kK$P37[Q#:Smt>F;[VhN
|
||||
<ZP%#EZEuKNhp`CDb&*m$6E0X).n-3V$6!47'AZ2G0SPiCusX=F?b`i8u_#WihHc$:#M\<'q&]Jpr]h9
|
||||
r`1++\WGf`##>cMJjF5']l<&$4EM5+Ga@',r,qOtZ[+>7%6,oVBTelXcC7N?'Fc'f;iT?a'0;S(ND=Z#
|
||||
N\`?/"+1Sjp7:n31Y&hg2r<>7bgYNm:cZ3Zf:r>rf[ZmT[4hOM/E9$Ka4^X$Nin5bY.](a"V4er.u%lA
|
||||
I$Pc;S;aDP3A*EoiP:tZN&ICV,6AF+]1.4UDOI*c:Vfo4CRr#%7h0+Y':,9JTag9<lI!Uj\/q?.Tas:L
|
||||
k\Hc8]$uL&aed2t])<<hA+af6(c4Vu:*3m11`1b0!iI?7b'&/5TkEeX;2B69<T.1O.[u\nZ^ePZ*@@,j
|
||||
!RKoB#l6ZUm4ubY9mRg8>@E;>=t:+64W>+^R;um`-1E<3obK^=Gbj\PJ#sI_Pc3Um04Y$H0qjX5-Sc[3
|
||||
k9qGDbhkL2RNp,:;TE5eJoQ#mhKBCF#F/0GQogli75FpeT!uT4Yi?:B%Q\l!%`+D73BmXJNQVgJL>iaq
|
||||
m"aNjHCA&[#X2b?j`(RG>h:q<T@lme%`*eD`Z^_)lbE`7*e/D?XtV'DHO.WR5#4BG++uG6*J+a>+di%5
|
||||
a?+h0iT>^Clu<=!gjF:hXcORh*eN^RW:O'2mcB43?`V3jpj?eOHO)g]A#I9hfWZH/@K,P3bT3VYETiZb
|
||||
Vr-&pRGbi-q9Gms-`.d7+ZRpZk/T.m(aO[X#Q:<&Bs6P_h[]WC0-/T$GRFW`hR)=AM!stt`ABQuF^(oi
|
||||
k.-=BMBDL3cQ6!6lp2k3+F;=>3WD(]+#5-Jg^fllE!gQnQU:lbl6EjZR2RlCA/RC>;?)ii$L"mS'lEH6
|
||||
m-*rVe]\RL>k*At-7/[PrXOlL-V9D[on<\tnNbqA_n]>hQod#5:C2W@R%Xc%1dJ/so-iH*hr&ihAtWS+
|
||||
:bt/d;j*gSfT]ka(<k/^%M(VAW!5!ghehCG8G"Bcf%":==>4j+M[l(e)@s&tbmrHLCGf33Yg*nDCii9%
|
||||
N/,`^25^%<HlWH`#,dEm=7H51ShQs%Pbmo$H(EJYL!S%1ZO44c7F2/4/912\j6EZmI>*gkHC/BA01i]C
|
||||
g=n2-rae<%L\0Y&/+I5hEE;=l/H4Y('21E<aogPp8[li(%US!83U-]ZRYD?&JH?nfkmT`8'6b8]+&rdV
|
||||
nbuD(jYW]a^i3e2,Bc%NcU,k<]Y@t,b2rR,(V-N\qtm*4e9J_QkP^-ppZ%UR47>CIc>e.0q.eU+H2j!%
|
||||
d(&t'957ei5G1@K4sS>5IH:>/$X,1O+#$9!kP`;Xg#W*dK(fAjJ?)g9]qC5RJY?Zomm"L;UW'b?!7B??
|
||||
q[`CA#?oGa9)et]pU.TF+/:Lfo)=1\P:uA`C`FGTVm2WE*OCsljo#96YhQ11MZ<8/48eYq;Z?KtgbMV4
|
||||
B9%*CKE60'nu4<n*aH\?EGucWG*E$WOW-OpLV[sM*P/[t36k7lr&YAjk^Xhj?N[7cqu!=?ooAM8o_^c\
|
||||
"/o]I5S'<c\YM9-Aud@@2HFJlC0`:#!>OFVeNu<jA)FilX_E4HFEC@HiGO'L)m%Ua+cFHt*#C.S66$nf
|
||||
G)U2$;#H>l8;,4Cn+])=`Mqnrh;-M_q!t-Y0:HQq5?mXM++ErCJ#AS$/Dtu1nA#`]QMX/4fH1H$]$W.O
|
||||
?bGD`/LKdfO"ss,cO\YMr`G6<hL^<]pOV$?g?Ws3o7t'qX`UB)H,Jr4R/Gk?SO9f99Q^3aSa*2*I%U90
|
||||
JNnX&"Sk*[^UKm+Q1[6:G@IlW(lA3d-JF$gma'[^'`H3Cq_&WM^J)$71=?*E7/JVNmCu?%s"`"$b=)7-
|
||||
9+u/g;UR5=2ngY<L;)](1i.k#DAHr2OQ+mJ^pqB/d]gPu&oi`PA#L8l$1f@OTuC=VNn@!l-YrJ/9>%gU
|
||||
U&,t6;oE":(H2O)4WN9f0<P6dHYN6mn[D*(G=I7h8PN+^M.*eLgs<F&q1)$A#G&UNeAN*uU&#uL4/Ce[
|
||||
((om"-_`iOL,/td:0GmE0@B&N.:_HV:=!iF3Bb"_ZdlZI?C:E>S([9"M[lk3CXkI:H@Nhn=bnG'5$["^
|
||||
hN60+bY]TcbO?B^/WcZr<C7Eh0Mn1r6`12,mni!WkMU<ZDAGF0:]IS+)BeY)hs4^$9JBM%!A]f6NHb&:
|
||||
gtE:af$BBE@Hcof:TWJj#Y3PYcIS'CQ5$.rno3rc_>n9u%$8>DJ;!'J_Z1",q1H!o]Q.u"dj)el)XjEJ
|
||||
ZT\eZ7kkpufa\o`3#g(no>0)iDEBhI)=-&XR@SDe5n3V*fhS0`=V5oOi,"r]\'DT\+*W$M2AlEo`11<p
|
||||
UiFi`BkqiO>G#`A#091GlSUp7?SeF$!dPSoLYA#5[LQRrU<M$J<rA;fhk:&`;1;:CjPc"Cn7_IoR!pgK
|
||||
r9.3HJQZ!J3[\\]K"'0J%P]t9[,^[Zi%<X+?]n@bHgAQ]19d[eU2X5-7lN=H7aLbS-&5sL]lfb]1F#U!
|
||||
#!<g(cae#;:ma5#ASa:d.L$g&-JgR=O,.g?W:`EJR$VH$B=oqn/rZo&(T<_]d:QJ[a5jD$@C@nVrp71<
|
||||
(o!]`M`JdC]Q:e'pX=eP]<f8B?g@fXQjO-14Yl1AhL#+2QD767%K+g^O6#Q[/H]W,ZF#n:PHs4@@B=aB
|
||||
ipGsYG]@'&cjM:9la.XW@)AUk9j1K0iK0$QE\_EdZnRE[AZk3t1pFu7+$<W+p&tDm'Lif96(ND=U@8\"
|
||||
1eBJ1Is*mY0acf77,]'pc9CQ0L6(;L_Ol94Vdu1F11V5U5B.+!2[]TCcMRr;i?)$?`7`I'N@1Ii%k`h/
|
||||
=)4\ZfCQd7D`81X]B-l*d@B9]f/u3UDn:4>dCf"0mn.i[]2mpm@u?hc&e?q+&dqI8^amkFD(DmHO_H>N
|
||||
T`%8B`'GLK>7![%&r'mqkKUE"D`Ce7YcS%S2'X2P@8jSG&dru;OUlHYI,s(R%G;fu&/.1sXqT-KYnEM7
|
||||
]+W<IVL9a+qY/'dTE-j\1g]dA'6[3afb(-K_fI3Xg?I0HBtSD>HfRPq6h<2++]dWlQo'!Idb(cqj4-gU
|
||||
;Au2%VS')h?9"iO5/c\_8`B/#rCnSKo6GN!Sj_n4D;(g7N>J*>m7QCB=k-aqA!UkNBl#2n0lVD/hdtU3
|
||||
Jbt=PLssCjZa`c&7dX7q06"G:#L*tY&AD1H)WOJ#?>4eYJ)k'e3B!:O^9q^G/5AEQHfRO6/6t]HSc3O,
|
||||
ji_l;jc/<pK9mL:*P2\BJaYRA0OgSgm,20Kce';p%CV_;K/[>cI^C`!*dQ$jBJ[lKc5DAsS8n&ZY2_ME
|
||||
D][m2g5YD4kDW\\^[ft@3sel#rJu#SiVu3!efV6ps&fi65O:Qp+qq9BONC\5iB6Xsj':e/q=<_+EBK:B
|
||||
H#Xf$,8D="oY1:%fCaISBEiNS_1t]gpt6Y>_-gBhs'80Mo60s\i#0Bb%Y`C*$q:R6#J1RtE<pX!@Tid-
|
||||
4E*SV*uJhRn;t!>Qnc7X<??B4PQ?U'Om`V=pZR0<lp:UPCl%I4-Xn#P,1uJtZ/b0rKRD+``UdpuhMS7d
|
||||
K8+iS*93$?/q.H5(&SGH/Jel+`Uk]9D"m9peNCV,e+GYY6TrfW]9E*Hp"eVU*r9nU/%n,F,<-kn42S=:
|
||||
2=bVOr$N`Pk\&,od2t<>2&q$t)>H-M<hcDVJ*Aq.Q]s[7FUXLOV9_LJ_LtH$&'"t9U//Xt5!:Lq/Q[pQ
|
||||
NUO78k`anposQV]"DD>?U,MkhJ=EZ>B.LV"R+Zf5RIt"7)Etg'Dpk(0X#c.WNq?E02^39u)u&/+%r(4J
|
||||
mA823+X?EL_u6p&>rZV3\:Y?U`/uF@QL$]X<ai6JShCr1Mu#7NWW1ahelq^2N/dr/QcO[;ZW6Tr['Kj%
|
||||
)A!_P,.O1#a&@EAqX/N;F4"oAdOu3HpdE$?@sBr7oAD_GbqV%JbhBFH-80ot_tjN)%dGEL6rc%n[Bc'F
|
||||
j<3P=VlK4$,/[HOT<R5D'+KG7g(%%s'.".cMJ,+44UlCi\hu.W?!d7-]`e]HoZO;\iKVR(pXBf3g+e/V
|
||||
<afC@J<qZIg:+Si@g$eKa7H[m5MKVZIXQZ7It3_2hXPkUq8\o9AGmAVDLG!=\,W:D6n!(PI$Xr#&bCP_
|
||||
RdYV<Cp\IlL\<<L;Qu:"(Xp,"QZ(8H71BI"eQT_0;?'I`!lp:b!-6a46dpD([:+@AZSCL<s6'Q46.dEM
|
||||
rT1@RT,\e.ZaVRS2Q6=60b;D"!9jQ]+#J'.ll7iNak-]U]'[1hD&'X\idp?^*8Db];k'3"547E$I5Kg%
|
||||
etlY9=[L0\$MG7_,JKuPeq^A6&,^Q)"]-ocMD6`4)(-FJXes2F[W_%KqrRE2r,R'\hQMj.1/$#^hsmO*
|
||||
s$ae>gc)a?i4jNWH<tM,r_CQc'JR&/\(E0dP"QHa1O0_fjcr%^GuZ7J>U#HlCF"1*VBh#+:/S(Q(#4l;
|
||||
+g9%Q>`l[NZZV#8EocfV@`U(4Bnj8]L`2)mX"l)\>[F-(L*9VjF&(I2aQ1kR_eTXhjU-959W)iT"W-k@
|
||||
Gua;3.dBr'09$^XhJM(!j;"2nq&uq<e=o1gQ"-.^"im$m=*SdW.*d<ka=GKRQ"FuiViXsr8R>\]]uZ?Q
|
||||
+g253k`o4#iUN"2kYhq9<MX/o]Rl'Q53*G`fI>l]fe*LPOY.ROXQ_^qlM?QiAN]$RYrsX`<Mm6gih-*6
|
||||
Q#O<V&N^MrZrbhIn2sN^EDC*.JH?'c8<@2sWVd2'+2?_T$d?1b=5q`*]b.c;B>lJmEO#/SB1'C*Uq/#>
|
||||
&_4`(3Q&[)i#8]3_,\'j6&(,m"1tLCm9S+M/)k;=Z-49!Xj(u:80p[d)c^m%2GOlF,+^r<8@1Y>^7h^9
|
||||
7:6`I:sp6HYT1<b9>_Q7[\hVE3^On/e[^ge;'$>dDSj$BbXKo4d>.A@U-E-o1ln/0Ips884hn1t>;sf+
|
||||
B]]#0H[/iGhR:u^l@qb-U,,*a7c\o6E^W:\E=RFP+sN"[YM3e1=+(qur3`83PZOdog+[ng_5QT=#Al$6
|
||||
0r'^K)YI7\StrVND=m1AKrl5Of4h!Yh70fmBAs3NkXB,Dd=rmD%EG1Pr3?NDoV1k8D=m1-<m\kNiEiec
|
||||
*RXa[g=VIm01WT,D:gthC'm1>_k%.f=FL`+D/;FZEV6eV-.@4/0BFm3,A=uWdtVA[#(ARAomK4o)dAKU
|
||||
BOcl_lcY):D045FST?fGobVE$S+b,-!LDS2c\OSABS`!6djhuomF4Dk>LOQBj_56.#)VRmIr*M!@!f>>
|
||||
j)DD#_R$J@^-eoPp[KV-'ga0K+0P''&g(B@D=-?\M1N=Q8aG;95(<])9g&-aZVP;9a5_eq?VW8gR[PJo
|
||||
$&J]>\gR["Y=gg&1s*a6qNf]@^"D&BAAA_OeTB";4HOUf4^2e'A:)mPXj&P6VJ5KnBdCq[Tg&GIOL`EX
|
||||
k_?SZGLQm=9=&6!>k@EO7Vsufhp+`AgH,1$XctER`GmJ\4[8J'j08I7oC)IH@\s"oqtBccPc_qCP@mYK
|
||||
/2#Nc75IA2jC8Yq8B=0:mW;=![J#]4K4TmpA/*@[/5n+&L%Ie:IYf_CFHN+S"*;NSQ_M6lpDP,Wc2*Nt
|
||||
]-:es@;D`KAG3LaT5j#3BPP,\;`p"O:5lfR'N#e-d]OmOj".0"Bj>1]:1E`H;JK.Xed(UqU!I46Aq*1U
|
||||
W]JteWEN=.?)tGW8[_L(N4"O!-bgqk`\Suk9hAi-cG2P&Er9pW`9aki82Ftk*F$-s=oS!f*I\kp[iUiE
|
||||
a0&(D-L(>dmr!$e^3mX\q#3Tmieqpd&I)E*$YW1[8mn9I'\ed(86Pe786rY/e5[f`U&r>621uo?7Ngh%
|
||||
1=>;.>sq&aSfP*h+>NYa,5iHPX3aupV3Qkj[\(]@AUdF$BLj_GDTcb5k-OAQ`FI1HN]p7Z)L[Hc]K6E7
|
||||
+g\:K;aF4'HFNblIE,+bWO2P`^]b+i?^`!Il+PNeo\R#&of-d[BPZH9nBdIPH\elgZQWTlaZ$'&+S5CO
|
||||
Zap]rhQ[`X2L9Ktp)Iap?&VC/R#Q!tQ$:I8q1b$&2[rf56YKGBgd]_;K'GXS1`XfO0IMT(N);MbKcL2:
|
||||
_fBGJB-iu'l3R()ML,oe>%PV4OVt)).BRkphs3k9;n=C@qkA>d0P29=PTDnB&a-moXN^-H2F.59pdt=<
|
||||
C*9hbC[TM^QEY,/1"2@$%j!`ogT7t_&Rl.jk%Pb>)4\ZWB>&U'ntk_V_[)Jp:n,jbI7:bL2$XA-NI7WK
|
||||
J?6<lK`9SG2'gId^TEbOQ]M]+:ih%V1hi<lPr[D6FD(3@<_,Eudr;+*:%br,c$uJK)s0LZZ@N!g8YK*C
|
||||
3jZNLr'Wp@%1Lp?OmC5EI>qKGTiUNn9mGmTAbp^RIn_064tko#IG.f$r$&4jf6mTtTe<<!I@cbg.:]Gb
|
||||
1u,K>L5+*k`Ck-TSHCK%RX5QhGBu2pKR19Q47]phaUr1:$Fj\'PNH,=a\3VFFH9k.8(UGSo(*)jVq]4b
|
||||
R>g(*dS.Z")ZV].jSnH2`>()fRYbNg-MXF_:JL:8hC6][KUiO?aY<%oFH7T9/Mn,qO[UcUB?bq5M3^_M
|
||||
;Z+bu_U;+iQIM%/ilF!@Mku7QA8o1j5OgZ*d<q_94\"YqdS+81GuLnoV<tl]Y*k4tmu2$/1J,?%c,?mZ
|
||||
$]P,N*eRNX>g7pFHae./9WhRRq]4'YFe)NYKk%GV[+R:uGAMGZ2S8EDPh%gM\gT-@D%;!Klk7+?4^6a:
|
||||
<JfM'f^7?D>qDsIk&C>4dN&51`IHY%/H3aTc$ETZP)1'l0<P9!oFAoCdmA:\Ia6$!*/YV9c<#[#E]KC%
|
||||
B>;TI-)W?dTg,,Uj5l1)I<t>;AREg@AIq`*c@\`Z0i%c#drWm%ftb">4T`LpmV9%PC@<>fipL)B^3:T5
|
||||
n)B[Xn#kgFVnJ!rV%e9C@84!g&]YKT.m,o4eZ<o(-O5"M,<1)>Sp<'TMS4pNg9GiBq;/eeHhI$1bZES'
|
||||
m+jO0+k,ja1]4?/qRH"N?->D(h7ictG?9:\<NVkGg9l,FCBq![*p]ZUM7opWguYtfEAm^Uo/lm@c;"bA
|
||||
<6%aJ]4fFWf_=edm_d#h5]fLuQlAB"_S1DDL-Vp@Cit5W-!KQ<G9-S;`R?:00&D!M0&f8?Q8A6/h:A=,
|
||||
U%YY`htO;6J"FpF0<im5I16S`LTi<P`GP6_8U/;M#QFq5a.M,"^MEWnZ4eGmS0orJL0?jlqO,(l_ui-<
|
||||
E%=i?O7LL=7$L9!/%'1<,a'3R')!8;arf+`aqkdb\$I[!0GU^.aM2MSXdf'3bT$m+Q_IVk7(FYXM3Pu@
|
||||
>'rba(.CZni5)dbD=gp/1l[f2Mm9<6=8br"#JtJ1EV.B\#M/*cZt$algB)P@RH"5T\^Zr\Mi73d)gta*
|
||||
MkP36SDrJDck(&k(h]D%CWcCsT.gMNr)@+'(&W7<F%r5r\4!sK2jGW;G_Ui0&N-U:Efi&E,H$S,HXt_o
|
||||
oQqJPoW]@4r2S36K/SDA.@r#277$I(mJ4dA3XQeMqh@a<qSbP)kOf%MR$:56M`<T?:8,?n-)I%]41YNj
|
||||
lNC=hN^rF1d+pRUG$9(#jTua0bc.ZV&ts!J;df`n8JAtWCtl9IEDT8kAWH<XX]F,_Qj(1oW,<Vd0&JQk
|
||||
gd"`9[?K8YX!:co9"M.sQQWI8Vj#95)2,UIfr8(<"'ui,'2im`c>mqn1JkJlKs`P?]p2YmSW'Q,kbDkp
|
||||
N$4[_,,N=^f#Rc'h&je<maamn'.?mOJ6tW\>Xp9>m&D<"QfEc^&WN0%^J'W$C)7Fq24;QoX^E1DQd>-A
|
||||
P*@&qpri3(<@27*_oO8XWr>cf4B+_=e/S'+X:3CqN@"frZJ<ZH>K7!7a=!br2jS>O<.0lme#54a.$eBU
|
||||
iiO`-JWi)tKf&l>a*tmLf(t+[16V@M#j<c'jg)LT)UYdJPiC7@7d4jXUW+,tADGY2eMK3QT<q0FCXH<_
|
||||
QLH9F-K-JF[uD\8EBHYj5'R'TK[Y/(0B1Pl=2IGKkjQN8DqZoq3N?n4ag1A[I^c5;0N)FsZs"l`;PrHp
|
||||
/=QOjWa(&1b0WQtaG/-L<2DjjR#N_6(/e=*TZff%4Y)I:'Y]DP_+F]3-ohHo8nD)jWf]'Coj9[EkA8Y#
|
||||
c_5c_jTlg"](M@KQ_d`c_:U<]\"T]CB<,pZFY[0rRr*AFTZ9h)ae`$`E2/\,1_>Qn%+pL!:hhH`#gY1\
|
||||
Z^.W;#U<YYRV/OTAkFiMc(LP_6k$CM)m[#A[hZ;8n>=>G2q4a#.?8U1HYaptUR2)6R3h9Ip2t!0p:uA5
|
||||
egG!GCp\7Ob4gSFWCu\J/Hr7fV/6F^:UF0UccP?')E$9UWf?&@\n-GH)nTl_.J^X@Q6qiB?k5b(r6'O3
|
||||
YNguP]K9YOW;;@BQ^:_659'NSgc`[33t5(Ee5*M&>8('c3Pp(YHaYXj0%%/\3p#"<lo`[fJ&NS%S,A`E
|
||||
=6Fo"j*;opr!(49m.j`,qEduZRQNk4Z.nGsC/"D?QgFItjh(T+YNn#k:stj?#9Up'`E,WJ$>&tbJ$+cI
|
||||
3n:_BB`8fbU.lA3T]a-4):-b9qH.N:gb8,K-!@^/XWguSBLq5X]Ac!4dT<J!DH,g(L@WA?mu?@DXf<u%
|
||||
B9'126,'E2beI;W-atVd#>=dI=WEk.1cbPUHmI38qh]AGZDo_L8NU1Cft77hH"43.>C5a8\o$DR1uA`s
|
||||
pmZ[ZM;P.IG39b`NAg%si,=66GL9U5Ki0#`-]l42PVt=t,i.+CWV2I>.gTJFLgu]5Qp++hc@6!M9RWWe
|
||||
=_7G5$Oa2#foks5<Mp6r'Hkqp1>Xs'q>aOfD;PpoU$=;5e<`+]D>DU]I<(dMLioW>-f$g0e&'2KT>(FT
|
||||
0.]5CSQVu&rD7$h0^\?Z,$RJ"8XXoM.%M)KFqUY#'#V*LMajlCXRLgXL*&g]WZjK$^3O:MZ[3#dX5/l7
|
||||
MXPBXUs`bF>CX=dqm8&:qfV7oNF=VY)Pcf`?=Ol_^>Q%HN[4u`N=jarHDtlDN,WKQ;KMBZ8[#C7N0>u<
|
||||
=(@b')Pf40ad?Vj(`g0,.""&09TKj)i2\R>]>b,@6=Y[cH9=#R<5'oW0ol4Z&SWP`%up,'`?)LR?<c"u
|
||||
2/cQ+'RjeUZ[O;E(g>BAa(N"A]30uVhfjHL@a^J*.l#(7^"Ui/5Q.i"Zk#R*S\t&p4eLHk7'<D!@"0l&
|
||||
]^S<BHh')?@b,,cA%Ffb<C@_q#f!0P!7s*f/!=FdZ@V+_C7hM]%gd8QHLC8_9QmDCJ#IZ*94s__4CmH9
|
||||
S[b-^q:?]s1I(H5Eb=PsFWNFUKk3#].T>fMD1:h%@F8`=!ee#I.'YD/NJP/^L[Pbggb.c,7#!NB<J"$t
|
||||
D>ZBFeeeu#9u8BL?[&L=h3G%RmS`!kFm0^o-6[bR&Gj@-IbH%_*NRd=Z'O\dfGUoAht;V-GWaPq^$'XD
|
||||
$]hM`^_/aO2MouFm?UIU24JU>,RfB$6J-,fMpZ]cPCUo*4DYXgk>eu_+Si[*eR:0Zj4Yd0E^%KD<onFm
|
||||
`:Ek82Mjm&UY@%J9.Ofk6J!Qh[cunnR?ljLT6Snj8M!:tRakh<?ON@A=seUHWjj=\8_@30C_BFFJ(Q%)
|
||||
#:L+PKWnYr(?6t%lEHX_E,?6WdcB0:5?R^7Ieio%m/"jA$U'":=dcXI7-H&j%jWX1q:aNA9Kdl`c^UME
|
||||
..hoGX&gO`olo'_Ld1osYF`LskAp6CiQ(Oa[Y/iEhm;KQn^[4?S"@B[-YRl3q6^+:Ksi29]sT;(=F*0F
|
||||
Rih4YE(I_qNQq*CjL&;hqQ`"/5gPPEf]BoJa"H9HUH[7H4l1lG/#pm!kL9"3a+s(lZsCDXiombm%sh>!
|
||||
%E0q9p0GDEm,Ha\RfQW8QgZ(8XBiR)j7[o6;82%pb;ZP]d7PpIm;e/TEo2%#n7]PZ3D81P\Y7[;(]+Pu
|
||||
&)Da"Ge+ZF?+uT'AG^V`mDjDGh@IdShL$o9^/g;#^;m;9ERTtuGIasH<K+]552M4u\@[,Er\I`5/;<f@
|
||||
nRd&/'(<g1BK10*:JLEK'o2JabUXm9^%=]!B_i%^Ib8[e)R)Orl]>CmURWi2"Xi3(%ssW=>Y;)kb26+b
|
||||
ij)n)H2/NKar1^,c!I4#g-2UP-n1hRN(BN1e&V'A\::+Ec>!kppQu[G\DAk86b(&#([q-kj1Y>fFRS[D
|
||||
n!M:h0!-!$h8M.n+1Opa->$:6]J7paOZ?\1XXhO$8PCmlR2C-/-i->pA&[31%@Nd&0MF6+XfP(G5[""3
|
||||
k`4(Zca)P:"eS,1Z79@]]`VhPF8bppia"WMmAB`ZYB3dZdf&)/X);(^b1:I8$U*tXHMW^pD0O#Qc(%P8
|
||||
mchVBC1-24b7@]3Du+<ND?K$`S13jA<^p`+PiY=^7\aU=L@-%b@_<:OUqCYI"^P[glb.]8mbkDO<d.s,
|
||||
H-87j<H3@)O5[9(6F^g.O&5L%`HV*kknn(d<S=c;A,V_KZh9b%\ejWb"47VrlT<\Z1P$5;Q-=,!mT!e'
|
||||
Knn"%qY9P?,+j:m-UePC<q9Rl4OZ5/g_6'QATCSi2E1V;P^F,!Z`sH$ZaCS3Sjaf_G>uGq4o*k#gsb+r
|
||||
r"3;l&+7PGUt^dtjN]ojs1pi-5I`)Hc"jppA')m6'.sX>#1YLk^3lj\gsDCo,./#jM%&Zc<^M$k*$l@C
|
||||
f!DI%7-g3<'(/c^Go+S[\Q#[L?fa9c[K6*#hg'&-aZa=)^85K`3]#DAblSmRSYA4C.[+8e,OcZrY1^0p
|
||||
<Ninh4f^Vhn?4Y6hXj.:hD!ap2Ga#ph&1Ucn#+KV=IO_Z"?k&L7HI3^o#:S#L2O2NiQ53u;@ehEbtM5-
|
||||
0lM?n<nILV]:R^U7$#k1c7JG,?d@E$B7E.JL;JC-FYM/@\Vp$-Z-4;UY6Z^`_j&iG?eT3cHsk-5M<BXV
|
||||
\'[BN_[>1)o1o;!Vj@tP@jTheQ/,IT48d_7\FI'nG!V7MgXZqT]9djVJTPU$[`nAT-OP,2rFpNhq5+pK
|
||||
=ih=d/qJ@t[`XU<0-W02<GPiG6t#g.\A,'@*trG->99bh&MJlUM/V\I7Dr8,*FE,@oPfiV7:^$,E%`D*
|
||||
2r0C*.(k@eksY`LDFlK*1W91`+u8Jr],-T:%:,0GH<Ai\'BQZ7=UjR`"B'YCGnH14Xf@!D+rUqE,3NFG
|
||||
(QiVG59[eR++'k=*8Xm1;T1h5hgs"0(mnVtY4HTc,1jA10-]mjf8GGKOn[3e!MjcF]SPd$0%Z$&%.rXf
|
||||
6m-)Go#u9>]SMS@[+b<jR@3a`pEHmRah<M#Qf(fGqr-#0eB>`ZKfo'PlcdtY<O#M7hY=::;d[^bosgs;
|
||||
'k#0PS6(:-o^aP/$EKC95Hc!6o.#5-<iNq;h"SI=YL]pM1!;e_;F'PVPq)HPRUsKf=J^Pf_^^@c8R[nD
|
||||
/;7*H:n1UD+''i_WJjp&(e:0!dAn71Vd`e\IU337O&kNlG$ajL]'!(RraD)/oD)g[12Nj`N^$:;kf8'Q
|
||||
V=6,6'<IIADrR,0mjNfORt'+%L%+3[NJSJ?phF'9.&'-KQa61Q0/O@IHuP(b]Z!D,kb3"(VC3A7\:h'*
|
||||
V()YOETt`N;^"IRCrfWrT\e7o#VBaqlMoDEK`<La<R49kl/E<"C%qmR(;h3;q1dr*ImU*uT@gWf+(raO
|
||||
26,&_VCkQM1Al97L[+fQW'/F.74N3!r<HM[a<DE^Zl><cWf1s<.MRT;86%UhOJ4+$]<0<,jt@IolL1S*
|
||||
7hoBgA\8bC4AZcD5V,C"B8L+\qe^^B`n-iMC+H&f(]2%Ye-2tAV33r%1hRPV;Of2gk<Z=!(.O&rZFSVs
|
||||
Q'hYA9?@H8IAJHWZtaKGR1q0IOBtHU_nF#HWt5jq9X7bq*Y\t0MA3Z/7e[A@H2#:*AgfU+olP_M%MnQG
|
||||
<CW8n;Uf6L[hX+4&pXmsetI^;@9e+%jVkk13]/!1d1rU\.Rmg#kOY$DDhL7)U%'[Fqu\=oL.)q[bqh/L
|
||||
S!UlfS.nGVDCbC+/!Uk@Ya",8=S&I.=*oPlRXXdD`JS._buF;lj3.,WD(N.1XX_TVRF6i$dBd>sJoe$d
|
||||
YSH)PWin[!OV)N.AV+^.mYF\6<j^7fj2(LHrJHW5m:OjM;(iN,X9pIA>:lmW5*mi]72JC[%\]]>etP$!
|
||||
>_QWt\RQATC.7(u`u7D)Z:EMid6^`+3VPT#/E+9BUX^*uLh%6;A*k4X?`1o02&B#gXf29Nb"+5cZM]Z,
|
||||
?u"t>bY)E>f9`eVbBL%5r-HX>6SO#[CUR!Z2WanRrdOL@]mMDGJ#g!F%mMVRMh\5k"_Jqrf0JYUI&!!-
|
||||
Em?In<P^(eMs+hpGM\T<Ar1H\Mq_6C\8N,%UD"UbdepN#_UPnX$WGPmXYQ2SQJu<O[()pNM@OW6AQQ8O
|
||||
*49*0/RR*!@/,!dg=m#MLp(pD>\U8_<`DQsrN.P=<u&F6,le\9]A^R[r,j_-AKI5_O88WrI@>0S=?UuT
|
||||
UXck<NGBNG9J'u2G_jJK<Aac6:KG2,A#<.#.'CC4d]^fn=DL^lV@92.?G)[F4>(^?4&+$RisOnBG4Y0h
|
||||
p1>Od3u1mrKc[C_+s_LX`H:hQC`W2*B(^;tZcf-hob.9V9n/+N%8P1#b9sLX.U@+"e$tY<Ug'bX.IK7*
|
||||
;=[]^`7/XHX#'rjbbO/pEQm,?=o;rP4dXl+ZINj@GD>+oM\,]F+jZOjGc6LOBbF(bRRSOJ?CU541n;QA
|
||||
$-+;`.*^0&mB<q;50\sE^116oC6qoV`gJm\o9d^UTD;g\<IB*qDDa$KRa/qk=Y&?]h#*)15?j=E,/s<M
|
||||
r#>!KLHkg!C&V.t/,*kgRM(Y@q4XCpj7lr%0)LO(Wr5%6Ujk=/<Us9MT!%]To^71:0$Oaa1[5,1a6GWB
|
||||
fmouud;i6gDnWLW>T6,@'la?l:JiEoU$&Nj_7hZ@nTa0+93>+AhAoRI?.+_A/>LI-gesCZq@nXgL0#MH
|
||||
.0DM/ka:?1NBL/B0.!oIq9jVT5M3I=&d(m38"hn?N8WL#22d5)jlRMkW2;k>U:k(P!LS.'m;ZC\]co`3
|
||||
4_cLO50Sg'\;TB%?J./_Q;=p0?ULGl*?eU+qhoWs<MpC#-:@[YI\AbgX&kVIYD[+4@>&P,aas:&r?57R
|
||||
c>h]U>*4:0nf?+Pe(KVspZpi<@8W**oA9!K2c_bBMXq0acAM=N:+4R\:1hBpJ&q_^WZ4g8IP\<&_(njp
|
||||
DsF2-,AsZA-N'ZpMdt1PD6]QCO_N5&P-_\'%]MDII+cLQWN(tgf'`[/U'Y@_bU2a>XG4c3P1g>uB,m[I
|
||||
%0:)4Q4MQQ7D$<]Api"OC90BLZVEY7^CF43`QH]m`@tKEl*V.Kd]+)u4&%bJiX11GM,;A#Z)6_.7CDt[
|
||||
M3p+5VY;I\P$,13Lbr-oiNq'0F@iNLI#mMGT0ED+*VeaLqW<Ch4K4*phlPfF6s<[?YI1Ck?)H#,[+1_V
|
||||
X8c>KcH=]`9o$![JX"c-1#k9PlV(NI<_^=Yp2&=jX*SrY7*:r7c+[1JB^.5aU;&>Z1so*C$HYV%W;/Pm
|
||||
42EA/e[/@HOZmni`DN(a47oD8mnW,M)irtMDR-)9[.rA-OjF!+Lq2O!R:O>n%8=(fTQE&mPpD>pG0Kp7
|
||||
$KgncZ.d*9%7@F2:/QRQa..#JgA)qZ*KDF-jqR!Dm$MB<ES3(5B%?09CtB1?*EI2p0A1n+%dUR'A>72+
|
||||
`Hn=]G2SOY'!_VG<'tggEnLKkPSJ7RSfZO$!)<"#=$!Ds)DA(9jkt6;]eZ19*H9WQA]J%:0tQ^RfaDId
|
||||
FuYcj=M,*\V8Gp""d^6N5L-V%o8$bfHq/;-1hO3(3-NP]oiI'6A%*;WTfjf^d2EN7&`[Wd9`E/f%Waj=
|
||||
\*4,l0q<DR-hTQ5fZ"_WC[uL6`3*<.E*GkHRhicNDQ?p;RX3WB0![XcG-%=^e,2rl>'Xc!:6RC7gU/$[
|
||||
D7U+!`"sXhlUuR<SNNM$l1mb9`mq!D\*^Q#]o0D>X7u#Ced(TurGqbk.T:)/GDC<7HZttYWP,pUCCN@4
|
||||
jEoL`p?q?0K5'd(VXa([75aquh,?C>]5pb2l[*h/EA_OfDPpoJjd)KHH^F8TU%`Pm6LP:mH^FN,p[+Z"
|
||||
HJiu@m[h_S(n8-(j&c0DQEFu)>>h#=pT[c`7PWJlhKPR;:VG)ZG2Q\H3oB;EHKop9#E@=)dI+/eq2Rs"
|
||||
ep8c&YYeS"eN)Y?[_3']S*sY$"HM-HLaHr!]aNWiZZX:EAL-8Fmfp56$Tqne`ga$DWQ*%SObji9_:GVB
|
||||
:K%e+s0d+Ra%lK[UDPM"B"q2pL*K6np*K(O^LMcmT+Jm7-hcrrh@9^[\,<=e'c_],<fqt)2X/[$bhB*4
|
||||
$2BJsf8)TD-,%$$]jK+3oc$S;3\W(1e4*K:n!3O`oUt^LqS`*A^[aQ=>\i/m:-2T=*/8`?<@:,Ca'q>#
|
||||
]U_.k2clQpK@.N_^P^mdo0=FE3V4l-db+JaXLAo4c*Cs%=0nKpCBS-4i7MMQNM0/)Q8Q[!SXa'eji!a>
|
||||
]U/;miiA#1WE'#7;%kSjX:S/,V62!3pC;Ijii=t11l90[53M[hApe?QGag:VkF1]t$JkE00-S-Q;=r#8
|
||||
!]^+ERA!YF1YHZWP4fNj<:Ak6L1596gK3d/etZl-3J,N"GZ)rMI:L-:b#asqO7<\&naNBe^c$Oo&@ft0
|
||||
Mm"8/*;X/n2ij0MMJuoH"@VX[[Egl_ikDRc[(_C+H.>TA1hB0W51mY#+gtP6)WU!t@pS+63p?\nN>Ii(
|
||||
b6)7&2sYA"qI2:^hq"P$:6o\bH*E\>m`Xcj2n@TT>o$YV@BHOt#N*4(?#W`sbM0s^]Tnb4q5/=4<Fr8I
|
||||
\dE7Pc<q]U>dpbG4T!r>[TBSrEg:G9(m.hg`s?@-]c>HT9g$!%XN]S[bE;--Fo*-qFrkA4pkJUW7hYQE
|
||||
qr$,kOg2gk42-+k.eCr.di7LMX_,XLbR_*=`f3g$?4&q#n4L0TH=p5l'L[U5iuEr`D5*?!Hbrn>$oA9s
|
||||
M^)ta(5FN4'MZ;0h*pe7icN)ud+<5#BQn?&cCo-QWFqFNQ]uakN7Oi]/d#nC>.sj]4Yk[b:Qeq$G3uMW
|
||||
&N?qcS`3pDOjD%>*glh2l;KI@.5`bQc1g^ScY+#N<pHL9TCuQaAG6q:/fD[HLK:Tsa'TYS8j\PFdK[b.
|
||||
1e!K$_kP&j"JQVI>2N[N^S<d>Wd^Bn204`*!].iJMK3lS\oi@a@3-h=EuCSkIOs-Vg\IDu"H(E/q6i3K
|
||||
m\.N8X2a]nEAs90Q^R08Tre/[h<u=>C^6U_WNi7r:2s*g=f*3olT;6K`"k=p76+B9XmC/Z4I3U;I^`p$
|
||||
$8mf*9<Mic[5^#s*=l&hJ+i+M4a9Lj\$bHNG,Xg-9@9g"^56uRS7)U^IVCFAVp'tT<$MQqc7=7dPSpUB
|
||||
IsI(ZPf2%j@sFFM?h<@HKVVc:2BMS&g7;6S\Q38db1^8qVOT+FXEn.K&9m*<\4`l;EnVGsG3@Gqf%NQL
|
||||
c+YCu=\_a[;TqfB`rE([jrV04GF"5DHuSH-ghrk_Nd6&1h-nmLj&T^:8*'AI^VSH=.C83p0iQ3e4l[lm
|
||||
prWe/2iZu+%%BXp'Q<s[2XRE@)PCe/Ll390.(!UVGc0G&T(H6Fdk?Y&Q1fF7V^Tiu9(s.H<Q7Ya=!,Lm
|
||||
<t3o_(tY7,K<&b/#*p,E^!c=#l;a"uPru)%AC&\[L3A0.ch>l\.-;,/1Sa]]B]ntf`Rb4LQ&s)%/)b_t
|
||||
YICmB5pK<6iZ"W93aIN+e?2.Ye6;5Z`T#7#6(Oa"8\s-"#B`7gmYN'Ig_VhT'uLA7_(S6ZN6CX`]r\7%
|
||||
N,#eB:LOd_A*p0hSj=5erO:@[rj#">b_'s]_kHOTjaG%]R9BA)1p]bl6roO1B2BKea,dD5a[g1fXtR52
|
||||
;6sJM*6Y!QR;M81>nQ"L1ud))lZW7#3F\lC.8#s^D7+4LnGmXTBJTK0B!5>[^`n-+Y'_^FN?L^F%d=AP
|
||||
8hY/6`>4#ZDA!61AHBbgQY;I8_o'#0oV^7d6`-Sed#5JRCR'&d")b0.WF9o!ln$M+6^YuWk'+0A8I9)H
|
||||
(T3'Ak3ah4/PY#6GU0ScR?QIbG%n1'SU?q3I5KM9r+*M`ZfG*EfXYHq3]"N\)T3\aB5F4Z'ZuoGKG:uR
|
||||
9S4Q7`g=+F_J7d=IpHGSl3FjWe)<qUm>e.]]Q:58ZKUb&>H@Of9\qGpjYs6nb$/,^@I>:9Jn[*p6Z)&]
|
||||
g*PGQO4c;E`*/XP@l]`WPQ"nT*_qOgk.I7uPXYY>b=0!Fb;%Z]h]rOr#Sm=u*,0Oo]raX`Uhd*)A(BCD
|
||||
h79j]hsE6M?+3nW.WO'XHdR+W0C">#L5#]Me[,"em[Hg060Z=@qp)!Yil'p!:J;QPh2Tu2Vf6,1aeeLr
|
||||
]B\+Hqd,k,U2IQOT9sp>\$=L2DP7_BDpjOA`7.L/dtt&J?TVqQNr6iF]5pJ6iLX?4%c"GSEFMi%5X,qT
|
||||
.c%m99YL6>WMrrDG\O804Y_*UeF&0m2c6KFQlPGIdq`'SL2Q14o93d,ceHT)jnRs/48SNtQsGG.G.u=i
|
||||
`r(j&S*J2m'soDhP.UX,,lb"APq$o>>,QAD9XO/&;!lqI]9Tr1iaFZ9">Pn3;.]cE/WOp#g9mi_LGjAD
|
||||
BCrs]U)3UIhU2:L``mNllD^0TiDB&XY'jc_i%C8W:)ZQ!c!$%tp.;1*0HG$J[11U6'Lk9llV;D$3U1dG
|
||||
U19K!/uhjiPJt1AZ+Gk>V^r8rr+K%m90ZGpAk=e^(3&Z$^Fh-N]m%\I<\X4fV_"L(+$=V3--f\PUd4(a
|
||||
BGBXK\_906FAdjimTo?=-#R"&QVNtpA5H,>=0^?Ep1OAF88%P#l54E*JWkEhS`UUhI?Cm$a5(X)G"d`'
|
||||
1pqXkC1E,c%D+-7QrJuEdn([]L=pp`c?cpUAoue"s)ui90ZK;Tl`QHWI8RD4eh5WjPkh-0:SZuc15!:Y
|
||||
a#kPpOg;GE7lM9G(><3Z.P0V/U8+Tok,W@M#4B:$h:gDC5cr[R)[=%uG/@k(1oXK]UMRaYH<+#fbS&^4
|
||||
8,XTh]YE%O>^OFMi+;8D%D!UuXr2IEXY],342,m__,Ps*)[sb?AH2X`mi,kbG^"TKk6JcSDTO0=fWKcC
|
||||
^Y!F(6@cmSdNXsNiM\9H3H2ERT>tt6i[]2Tma&XVmlC641j=@3E'-@kl^k<4^ZWqX@uCBs9K,5a9g3Gh
|
||||
47C>Jd3mgWe$IRVEJ)>\-/"l\l#M"If(N&%dj[CJYA<b*kB_*pbHA,n]URL3c@iq6X#0`U4TCH?q*3D^
|
||||
qks2UmsB$@!c\FXr<fW1[,bXiq\ASf)#i236pG(FafFb*#!A0'L1Js`1PQWS=I+)=q((sEZ'@9""1@C@
|
||||
."R]PWc;:,4GoCe/@rK..F+V$77*XX9X<7RCQ$m02Hl%ca4TXYRC\ou0_jt#7UI.Y+.]0thJ"-XUD>Z2
|
||||
c%)]F6THPE(N#p3#XrWY0)"rBB>sPm:TIjf?:;NZ8o=?MZZ+;!9[+L`-Ei5Q@JhKSbD_pCj"3#nU9s5k
|
||||
DS@*:G'^O&ECY77+_lTe$mUpYEAiPA2ne2s>9WK6/3->)GpJ[_`-C>WOo3Bc4^5#saHj;\MH9Fm?aQON
|
||||
RCC#i=pEI(RmfF4gJT#ZDgL<li>IpC5IPCOU1]0;r\*m8ErCDU%*&eCm(!W[q"l"pSb./Zmk91.41;fU
|
||||
^X?3*4O0t>?[+)FF%gN=dMM#7`A+-,MnjO.*<Hp:buZtp^\aaAoO'Y6f=K&>n/^7cj7ubm4\&lC;W5"f
|
||||
%iinc'\5@Sn&=lO\7F\K"f<j`ZNOT6ML2Ri]2\,$/,Ha0D&o?lQ/^IPl`6h<So+G/+b)#Bkjg"FF_C`b
|
||||
2Y+O-)O^#..5KDFB:sXRQJu0<C,(u2<blD$D7'ekC'ieN0o*YjCpP),^Z&@tm<!!A[9k=$j4`P&fY/0J
|
||||
^Yl_-L2F?,;^*_i-1V7I/`9s-Xg@e;n[n1k<a],`rc\*P!L;oUs11,V.:&[:+\ugMl;s4sRok_,IU2WJ
|
||||
r>N2SgT$W]XfU&+.n[t`<:);Bfu[9i`nE)gmPbWGeOoY'a<:F3(;k'5^;.Rdk*s<i%b50tX<@+UbB0"T
|
||||
Vf]Sqhg.#S^glnJK]Yr:8,DZA\$^PUWRl$ob`->sYq2BAmmIpQm)R6=4=CG:_erd0_(i%Gb0sGiE]Ad=
|
||||
PQMH-jb2jN-(.V:d.V+=G*>pe1TXQB,Qi-;MFq8[M';dtEp^;Yj"u[-CgUg<4)M`2Qh0+?g]`,nj\h2q
|
||||
1mbpU$/r=iE[gTO\)Hr1r^tilR5gW-20JF)l;1iHVI3GO&e-a=:F/c:c61L+eYZSF>]eJaPQ"SE'+M,l
|
||||
B6^nY%$d_?(8G"`K>T1b;7k8'GO_6KlA"Q6c^R-\'R>doR\E%7fKUs:jf.?&%do$-Qh_S:RLJ[lY0#$4
|
||||
?\/Vf=m&)G3AakHTH3$EQ@ucM'\YBNENsqePS2.X./SkPZ=cmPLpLZH%_Q:c0+Y]Xi&t;A@e1uKgC<_a
|
||||
>=Q+-g7+*JjSG+4c(Pq%-"u%[/R?Gt=a5Y73hQ6ZLRoP;U#Wpuk(f[d"3[gB[8c7onSBkUrs%V63;<5H
|
||||
SI8PH;r5@Nq=2hYXK9;A-dOm?`VS%j7oY]PV)55h[d9!R>*Z9j.*=6&4^E<uB!b/L/\G/K2;,?<[$/Y/
|
||||
C:mA?pE`IT1$!AjYfalb%BH1spL^J:T_HHbK+uN$>l(QpCcT#qV^elUg.!M/;(jl[<]p(Tll5)`7`HK4
|
||||
gZfB:a,hY"r8,<8ld>CuMPp5*5$t,'(D\`9't!$mIds^]lZUQEO/f<^&UjYDDmhd^^23IGF8U0ckZbM;
|
||||
Epf*&V`=PFWd2uQPi$8kI""R#UPdNPG!ZYK.*AV,`:AqZ-e7@"Z\G+.=/K/oMQ^6Ll-ijlF0dF4\nPn[
|
||||
9.[BYQ<HF5Bg:#9)HlC:Hg5PZp&t[sE\*e]LVeV\PAi`keFG>$GRC$AAVr7G;nLA8NN[]b'Xfp_hO&S\
|
||||
2s3be+$3R/fXhcVMtO[7a[cSS)D13fB?bZA41_\O@'h8Q%g^pU>_^oA@9l-I7kkBWH6/s";,U)qj"h%^
|
||||
%;aA2Vb]6#H[*[s!^)1AqjTR6XaM^+"\CMJ!;'s,^@jum!',/8c^5N%1f7b9\Suu;he+jR1r_2Plbt`H
|
||||
Q[X]*aZ<c$q6g.M3&)b^.=KN/dT12&;u0_YLl:C19Z.p@64kXXXjshga,&&gH4<[.jnHMBG1u.@pD@c>
|
||||
jE_#3Im6[2o#ops,(96p<sk)SF33GE>]VIg0DD-\5hU6&_ndeUHBic19/b(8nPh'UPcgM*.m#1]H./r#
|
||||
/9+'9ZU:ZE8+J="^ml:U(Pu<ZDqUj;%7_MP%X7C:5tbL1r2rHSH2C%O[9)_mZ4G8M#JW[7K%L>#3nD?S
|
||||
OH2/#/Xo]:Z>\nhk'9Oi[gRXFP1ScfpF)-uV;^?nICh)i"UDea/AgX1pIoungK!c-S%M=-m5[.8?TpD,
|
||||
^2!m>l\HGql"A50o1Qu^Po-ORU$Hpa\Y0efgf#SD=-uWGO/J3Ro@N![.O=KA0"4gnTsX<tBs6pn#YrtQ
|
||||
bb$*eUT^r7SYhjBE]T@*CZaATh=?I1*Q>,k[\@q+cO]Iscen>gA8t-"f"r?n=1(XZoP!oQVDV$lQ_lY,
|
||||
/25kG455AhD)C*1Up#\0gH5V:]NCC_k3H>/>f,6+=;oVTiW`#%5KN1;41q=l&^\Obg>P^k_KV\bP\sN]
|
||||
K:D@ls)X&i[anqF8"'gWDQVGaM2GbfTeH3KA*'OsO3ekKQRV&eEWr&d*0Oeg\#-@u;Qebh=bL8!UZus*
|
||||
gi$9-qB2$D@217k1s/Wd(3ei,f3+9n,jWPWRWEPij-_h_>.[_#Xn<_#Du<qF2[HL^gIE+%o]o"?R8k8]
|
||||
^Ynud`a:i*m!bM</?X?m8,HAp-Ypcs]iLrDUM^9f`\T3CQ`k^^I_;FJ^WX4Zik2&?NBmpBXBg&%d;N-J
|
||||
"pYB-ZAc(m.A`f)q'g\i-UK-8e0VG:V8js]-C8FI"]trB40j07JJGu$MMO:7.>^#j][n?8J6C8].K,"1
|
||||
h!h2+`VuHA%H1He"@R$,j`:b9+PrfT'RPdaiLR<6Ol.c",(s_k.Z.:Pmd*052UNo-P46E&nP?=^b46<N
|
||||
l+-!kkIXA+5sLHKk,h8K8mO5hCXkl.J(9lDHU?tTk>?k;q!6q@j<N4[jqnp3_)i<niY-l?,Mu_)0#TE8
|
||||
hpIdWAoB)<eM-F/@:`1p`S3=fc\(p.ZnrkC&AGnm9H/IhhTBH_66CH]NJ73"CR`b7mcj<qS-7rb`f1K?
|
||||
cjGjt*!%sHqEl-B8X^M4<gcA]%$!*-<=LU#<QOm^4VJUra9Z:W:A-jcXd5g%jPcl9WkrP-o@\6WD5)mF
|
||||
(Iuf@]neQB(%#"$qJrmGD;4eZGq-VB&%R#%1b$$b`5tiA0/@M;J=8*Zn5R8YR;%mH(?CD?GRM>U`Et;4
|
||||
$c(i)cCnlB_!mms!oqr`aP+*'i*77MqUc7@2Pe)tIL>>n0b'"Q2EGWIF-iEeGM@$CoMHU(U%<G-7>oa^
|
||||
X[lse9q8(2&umD_OZR]iQ)iCOFQo_RQT[%a2;bH;cKZ"3cU+8hmr\JMEJ?@VXP9pW2NH1#Zkn2EGha:!
|
||||
5d0gV4,0>pfSY$GU$*!2`HLmqn$IIH8_2N18FYuYCD?5?ebT[_gN`HVF$Fin#1&"5_[0bJSHgE-l4`Th
|
||||
nlBe9]m(KUUI/$]cPhl)RCXj\Q$df5eM?SV>,s?/UUo7H^&j$_7gdI<;Z)E^/j_W1.b[Uuo##T/?Bjk]
|
||||
%L*/R%Lq)2p=l$a-Z`=[FSd.o$)m]SD,tmUd4`NJAP3iI"T+*_AG"'GN3R94D@Y5:C>d]eC'f1jFXn4X
|
||||
$L/MaWi,-\p=897^UF.I@jm:!.k%;cO2dpI@:Pjs`h5BnmMO.ZLVf[bY#6*?aP.N"@E'L`pI=968_Y(r
|
||||
;q_kdR\Zlrg="YVn29ZFpkWqFUpul,j55>+\u974J&0+NLU[+EqJ.ZV:1:TTfs8AA5S;Pk!-R<aKg>+H
|
||||
gGK0g?9,d_h&*IM>j>C5A+3HOWRHpZ*J<,"]c<]Y6T2OC@O]IkORga])UQ$7\L6hGWJJ;J"Ih!NA76I*
|
||||
E?$s<<(7&b;%_T+hHkF?=f*2I^-C1h5AFU'M=Y$8NQjP[^TI'M:nl8Xa<R_4MRrP`Hs[+3!A0`6>4,''
|
||||
!UPm]Q2b'$3W.DSn"$Sn_NK_oar6mX/aNDq7)"CKR.:pZXaAW[P)9XSWb,]L>`k/;mUf_rN$9rt7k5cV
|
||||
\)%#,??!#cYE[/X6bU,5BNE^7L=^Ega'Xj8WT3)/V=B;oNA2ToTN4Qbbr3U]%'?Kcs5iQjn7C5PF`/_K
|
||||
prbC4?:_-,NoVn5GAPS]Q37H@Eo1:"ro0jh.)m2CfaQ+[CPcMW;aD\Ii\f7oGLZ1kZfnoAZ6`cC[s>(l
|
||||
(bi*pg&)sj5.8+LCdk`TS=OUR#Nf^E)X)"A@J?3&UD+_DC^?Z\r>_bEZ$H-lDfejXeG6Fgk(P8qJ^StR
|
||||
XQ(4/BCo9#qSBdQ3#ahV0#nr[p)A+s:Y#d49f)\mWKd.p.)H+I'&J,,)6LaFJQc3)JESC?P?q\8#f+6&
|
||||
nOqZp;#B=TimO1pdAT%(o./UAeM9$Da:YNlpS$'A<CtK9mt#^4bk]Po<Z@aa!t:tkE'U$%o]]jEXLui>
|
||||
XEu6])ie>bQ"T0QBnQk[)h\[lcC<W<7^?oa9sXKO34-b$`'lbkj+/eKVf#gfO5$O?7WOaZOu7t2kr(6C
|
||||
iPJlZ^J&6WS2Y8CE%>-#1)Dc,o:d?-GCbC/H!["46a3M1H[@95[b-ZldgPkHH,!t=C)TP]j-9#OfEdlu
|
||||
hDBN<0\.-P`nDH<:T`GRN!;6=D;9mV2]$,?%WU;r0lhT&@$!_?8"p!6fFgNPK.KEN#B$#`lR@rD0:3Ak
|
||||
jN$'qD4?dt\#J9q5P>meLc>*;;'6omiCu=ikO2SeeBF)`pq0c(i=rHdcqRGS&ofR^-J0\fk0f(EbAmO)
|
||||
O+7%fXVo2SlhO^?$pUg2nUt*s>V@gI7f:-WX5esm,Mlk[MKm.B)=\3GB%2U=o682NFED_4bO@mNZG2'a
|
||||
@UY:j9DKN99]`[Qhq'ZXCY:M;9DMXpf<T>-kZY'614CG)Ja^[kNL0GP7IbmC#WLT?6$s!<$;,3FPrCtE
|
||||
3XA_s;\'g,3@]W@;>%;:J\Q&hr/`d&r[*;G.WK95f[;,(FLDM@l/M3>BeVfDNlB%MhZ!fa^9A-'@3A>P
|
||||
a3;e3VhPo1Lcb%;Q"Lp2&uMDJMU/6[X'"FW__l8@>r?fNkEli;"/2MU</r-)(,na@IDNFs*bN^;5&SWh
|
||||
:i.<@D^"dn5$I3iKJh-9)6m4M8Ws'tfAT$>GZ$(BcOtuI!Z0]i`pmu-O^k,VaO$j:fni`6'uVbthpIcn
|
||||
fP*n3r,U#mdYpHKFLf%oHiD3_,1"ht2].Q^=G5'(lY]X0]<)eHO0%!3_d@DL:gSNYc;DWiK8PkEeD$nq
|
||||
&bh!:aqhJ+=>"-u,un).HlT\&0NB&Y2IH7tZ!5;Tg5=F\V!2KrB@n`aDL[+]]c#PELSEG0O-WX=0m:=T
|
||||
oIMJnk>S]Qs+t0D^-t-P<$f\GJ#&>M(@U54G&Uq<<4(_]#IX7H#f]8n-kkG*VO8p0M;/ds#`:V-U22AL
|
||||
&&Nf"a%7I4@NL:So:XUjiGd=cLrHKh7itI::\CY2a@'jU"a+uYT0@G9M@dYl@h79I4H-ETIrr-r42r5*
|
||||
,'<I)if1'k;/n_XU(XH3.q;KPnNOr)J&@V!s!)kQMIP+FG7<+e[_&STMFfMW/&k!%?^+[*m>rs@0?HK7
|
||||
oN"u@Y)"=bRT,u5&hJ+=`8+3@dI.5#8IldpDCaHmGp3Pa7^lpgHT@qVl1?WIVc6q=QrRMlS5QC_8Z)BW
|
||||
D]VZ,P+I+\0[./[aofP_MoT#MBlbXO6USFqAPI&Ahs/^f-arF\e7:(O)&PuoEeMop-4:WEGH18#[\I1!
|
||||
>![KgV%d1.]"N:u-qB%#lGUk]m"CHb?26$kN!H%T\UVMAT!^X#_qfrT=Xr\OPYBR8eL<Z/.YgEG5'9(3
|
||||
:6apTb*0m*)7X4JiYG>2YY'o>(_ODZpXGrP_GR(N'BWoF&`h!:H]?3E>9VK+Jjn@STBQ<4o3XlE#7^m@
|
||||
1Dkl:R()gqmV;]TQ]CQB3#s@&8Dfo>?X;11',R]HF;R%O"]iq]Xml/UNk%/q''XQQ*4%MrRV\Se2i_o8
|
||||
"5o[[?/#oc::u#/ETYMmpn^`!\ai/?VPo;/FPcD]S)N:56,;f*9*n34V0;5S/<gil("N]S%A_7OU"-4t
|
||||
8e&h08"QL9$)m;R8)+!F]&[k6pcXO)Q,hWe+pj3pY+ZeaH_C#)1V[@'qjD_a4#7(-#'\+DW8eP27#Q8p
|
||||
WYOs%6!K5LY=*l$M!WAs:us.lT(WR7b0h<&W2;h[X:2X'CDX=238jIsbG%XJI4c,9WOlsO:Vp7]Hfnp?
|
||||
!o;=243tW(Mh47+L(_i+HkmP]Nk&D-Z\*")!dfV#SbG4,-G9gHN.O2`$i"D25>l"="j0-3(sQgC>.C9(
|
||||
S[thl7eb9^K].\`$j+ZLiu<H;GjH6NL6,ImOp5R*UFLK5V!^P0%AK9>ID;(-h1dY]L0lPcNKDgZ1u]ig
|
||||
[qR]K9m_Et@2+0F3+C6h[hcH"i&5geq8:gMH/CQa9'2C*PfTddh;W$Em+\a?iX.kh3hlkL;S@5"K`c2s
|
||||
S)\I79^1)&qRWYJ1Wn[\<:1YA.P=?8::.s\Ne1pCltu=U3K(VW`VHt=d-,a958c:#+5RE;"XiD+"jYIB
|
||||
`eIn@rjk'`A]>(p#`X(bc-Q:P/S"7`HJianGo"]4nn<,!mi\X_l73F@#a8iXE^LsI"L2Dqf*B:CJGl;$
|
||||
9qgUL7pXc<^I7oLNq&D'-+@<./_\c@o":,Dl.5XtaMuA8JO*/(IMp&_C:NiE8JX0-g8p"RDis"N*j%82
|
||||
Ta:Dp)RF+JMk5WB$WOq]IdjKlb8bn>R7aka&GiUPoS)hCok7(a;W\AC)C5o6=.#n7"boT'Bm#=^V^le"
|
||||
ak@nsE8OEM@2,m-Un@I!-)^AaMdKpDCtTB)3-PL/fk`Uc#e;I]N6-OcX:B!9ZDhA]muWL#M09p],R];Z
|
||||
HDL'^fg_;mbLS6q>bR;EFmQJ?+&sOuT0%:LWUfmj2H`8L<tRGYo/H@m,uLd$Z*KrGPXSc?+>$D$aUj%Y
|
||||
mFah?77hUP(N-AQ%>WeKcbEshB/'oS<D6$ZH1?;(G2)Nrhs]h*GK`.?lN>&?$*Q6-bpK%pb-BB[h?[Si
|
||||
p!F,C%B.``P9eni3f[K(i3u@$:2cuma(G?_D-0FP,4a\=64Jp>ge3<84$!!80+NBtP5Wc\(IgQ@dDJV1
|
||||
R&PDF7(`^a]9fHk;4,!aNa/J=CgJ=`ZAn>d:$Q?B98)Yam9ZNuBmMKu:u+6sL6m]rB9m$1!gADe9>h/a
|
||||
om2Hk_dlgB'!\$LFYAlNn.N"GjEu3+ed).=%npJk]L9D+3kHK4+d'!70+fZYNPMK^e=1fAI'"Gr+p>$,
|
||||
lQp#*_Krm`L<\>f!:K=hiG(k(Fj*L3;K"\aW)[#`H\l(CoD'J4>UQSPA-DIAWu'+1/51.^N?p>gX"X:@
|
||||
iYUOUq?;efjH_BHbhj9-AZtJ`5?n)l1+^bWX6-QtFL)$L,$%*G;r(a8'&XO%'l9(BdOJlf`sBk@=aV%#
|
||||
)J9F\*E9qBNQP5/6+dqa:I/_Eqh:`)6D(9>\SeG\n94?[jKA5NeS%pef:A2Bb-L+tB$3H]T+,TC86a.J
|
||||
\=qQVD%Zb(]G"N5-4F<U\H/!/\$f:U.?%bh+e0G3(`f>lf2;mKmTNgn_:koMYboC^(Kt^-/^tB8*aGBo
|
||||
T;_Ok`173<7BtdO.s4`m>,tf>9dlh9Vn):7[Z=HpY>pf_\%Gn:V*fMYMj_u:Z5&1!M/'IZSEbal-Pb25
|
||||
AhRtlo^oRk_W=>[<5rcTn1T6)6(N>*j]=0)OPbnfFs'FU+rZd%FE(<BB,)>Z1p5m.>V'G%Xr0fIRXGPZ
|
||||
AKRf4K2p1Tnk:tXS,t&9kcPsd!/-[%7K+DjGsjk(_BfZWlHkHJ"q5.@.l?-D>6n!7?$&/#YoB^F1]X(u
|
||||
G=Ojkl_e=><UHkE/GBK%Y?b=B+QN(9o&?u^-`e_[em!:/Wf#'M(S]_<bH9Dj;42j5TZ]JZT8<2p^m6Cg
|
||||
E[70C(115!.TB9]f;pI2O#1`C75hb%U^X_;*IhA-XJ26FW>/9j_,@pi=e^0cA`83)]N*A7CFVJHG@Kl!
|
||||
-1ru1KkX%*->'7"=]nLL<>B+=EqJU]H+gVC1"e33en3V&AZ0./oj--keU<0q'pGESPtQfi/+n?S0o2a-
|
||||
bk5!JIa-0Yj[lU!4Duekh2]Xi\bJ48W_0JYMgF=A\#`NOoGOR"aoJtF?WDL$>FC<2PkdYT:<?VOc.oF.
|
||||
cdeVOJOR&O!`-]V'&d<o`NQDn)r3<^PLX9O>OAnrddkgg+9n&Lb$G`@E)iLj'^C!fQ`"ZJ/SdEu4[\3/
|
||||
A$R.U8"\19Dmb!C[f%t)bsqAS]NF@@nFF/M<2kA"f*C>S;:u^)kI,<Ko3\SnHtt1.&_UMO^8Kje$4"<6
|
||||
Iq!?r.s&RJIJ!;DBgGe,r>d+"9_sU;?OTAOi26A`=hh>R%(l;KDg7?"EV*(q5T=lIp+UI1VBI*3@5l^s
|
||||
h+l^t01X"IhZh[0pq,C&[L*ILof'TnY=e"\f+?XFe=.b;?i0fteD.(H*JEQU^&.mg2]tbI_Vln'T5iY/
|
||||
UQ9,,BM[)7\#SXae(b@cjqb)Kgjns;c)i>)j30>=IV60n##snWc*aglQ7BCub')#=81/LnDDb!?Olckt
|
||||
UPK5<WnU0fX,3/iK]WKoQ>:A'BtNM.PLnTSjp#([lY70R;:6+8IhnL-(6^Mu%DgXX1cL.n5;]j_1_X=!
|
||||
>HGb"2kd:_H)id2Xb'6DWGTtgEU4G-9QSrc\07n1e^3*)Y3+lKdbM8WhFhoW\XE9?gpUo\d`mlPYoI1Y
|
||||
8nb3@Q>TiZ/Cg!NR&ma!1cNX&.B^2^=b-t1Hr&F,1)IGMlQe;G?qYt/Ru@%s2)im810p`e!RL&B)Q8SU
|
||||
0*4l"nqaoUE7muYdl"W"Z,WZO!UoEE>O9GoIXPmIgcPCJDVV)=2)dYDZcge'7%q.[X/^.dV5-b*"-PTI
|
||||
RTiecK&;!LMc(V;FAKfSJ18aFH6Et!9"gYh80pg,c6LSnql[KlAgfJp_d=2rQR7H0WN%d6m^qGHS"\3a
|
||||
U/a/6,[GXJ9atdJgeUCJo4i0YUV#YXg.\Z[)%+X5>G\n#Qbt[>^3<l-NI=F%Wr]=-o#sYFh5\IS*j.jf
|
||||
XWB"@BCYM3[D(I7CXM>Ijl5SGRN&58>g86`@CbO_'I:rjdT8<?BW]e>S2+I8p7]$*7*9)SX0!jBdbKZM
|
||||
e_CS&k!ncF?#q7Rp[c36n*eqP25!r%lDE0>gpV!9<C%J!\NOJeX<l#b1X-B-,hLf[IGXs,X6iit-/^fW
|
||||
LZZU%:(PTd];F\YdjqRNl#\elgFgb<ih>6(hN?r4h[@]rJ`H\R5I%WreZ/i.*]rKi^PI[+3%O),nH%_f
|
||||
2r4=mW`>#+ol'Voc3oVC/Lb,1)LdQli[EL)5SmYlphWhtp$.n);r.-f0`"KO%;QGecF3!MN'O#8cS06P
|
||||
ETonDO1,8^.sfc#CEuFYXdX[XV<ZoSPK(3/mE01oe;mYepu#',MTbI"<NL9[9_:XV_QAt86<+%lHFAaD
|
||||
,ZXYYR_u"8ZZtTc2MYLWOT!_c@&\C9s!^[A`n_1Q#FfGg9foWG`WsuLMX!mZTF(:jXXB)F%]]@IM!qtl
|
||||
;o@ATY=<p&[?+Q0bHR*))r*b`?J?RlS[Ss-4gU@D+oA;2V>T&mps)GU=]Y(M?bGb=OTq$Fo=1iBkT>K0
|
||||
9O/8ZoZ8SgLg]^QhA*gb+dums6VrJe&\gW<&fuW8J$>jir\u!58LFhg.RA:b?AlYBT);/,;JbHj,*n#4
|
||||
[O0<(5]Ae[?,&>bL*h!V4st7pXn.m9#enDh\Pg4Iha(r#A<%dY"NRpF-0l@eehD2UC#V6<0d;Wi;FT7I
|
||||
6&:#J-I_+H]U61'VVB618,bp6j]\Jko,-siSR5"<mT.<4$%H7)U/=1GHkq^Y9Au?OdS.NqkcK]PM#PT\
|
||||
GP(!j/nIJM3EGqW]4EjJa*O?I0U&tF5MdM&^K?:oH=EH[%.j0eIBVAlS,/T5>*^d?<De&bXt<SqJD_Fh
|
||||
9pS"CE,D>;U2$m\kTF4h`K^NYh;6;;eKDtN\!H`[2N>:@FD723q80/32Hl-C3RSA74>LlPR9-[BKa`HV
|
||||
4_)BS2^Vt=g)b0Z(%LI'UIV-;fW'+2USf"CBSuNgeg1#D<W.-Hh?8qRQSGA)\S:fn0$RngpkEB\pO=fe
|
||||
?\#8]1]4!ViF]LW\K$%;fS*=*QoY:m&9#M"3%8<?Zgf!IrC5#q]I>B%RFT._1Xr^eF",Oa=6EhGmG=;X
|
||||
XsiO0?=4^rZPFI'."47+SVlFDQ,2gh93a-66#>+ViVljTd1VLN@5HJ[mBQ0iNI@EVh"@Njf#T7e$?M5V
|
||||
fs<RU=?_RW+N=Ykp*>aZV)AJqkeZ[&*SU7p'XMgs,>(:1S7?fo>@khb<LM^V:^5F$WP,5gT2Vlf=FMVL
|
||||
='V#7aeu2kWMSnI4+6^d0d&qB.8!T2@kIA^0!<u;H,V>bMEF5sZCOIsa.-)D1ss5S4c?R]<]Dn2Gq/'e
|
||||
1.IcR75s1KU]#$--h$)<4rfQr_AkL%?(Sn<k,kpIqjNVKapt34Zj4hS&+u9UrG^p8c&8Bn<A.\Dn"Y%Z
|
||||
l"?/V,2[YYD1r6kd>PYZ:f'SV3"%(aX.gF`:DC3Y9+Kp1hIJ\sl+JL54gRn<Ufuf0-0Es+jE&(^`;>#)
|
||||
#KJG-lo*H#m_7C/oH`::Dt:a0UkX8)9Rh'X!48'8#MrGWO:T-B\U<?&Xs"kgR=#8kO':!2Q@&[)&,F"5
|
||||
Y05pZ7Fp4,Mi)R<j9'1nN[l3=0CY&6Q;(bS\HX3!n>6&E&$.`p>s?3jj^<$arUsF4.bj!um!^I&I`R9g
|
||||
"0BTLAe'KA@)g0qnq!jl>WsiC+M.c\b-E04I-aouYbGfVd"^MPKj7rkOhfF`aKu<ZDEFn'4`D-a9Z=kQ
|
||||
_;N[H=Rpc#nU:EN?Z"un[.&!_mDS>@%_qu&kHFLP^]-[Q7Jr9d^&B0oX%at6<dENQ41<0`f)P[.^RZGG
|
||||
gQ2@N#MUmq~>
|
||||
endstream
|
||||
endobj
|
||||
7 0 obj
|
||||
30549
|
||||
endobj
|
||||
3 0 obj
|
||||
<<
|
||||
/Parent null
|
||||
/Type /Pages
|
||||
/MediaBox [0.0000 0.0000 431.00 434.00]
|
||||
/Resources 8 0 R
|
||||
/Kids [5 0 R]
|
||||
/Count 1
|
||||
>>
|
||||
endobj
|
||||
9 0 obj
|
||||
[/PDF /Text /ImageC]
|
||||
endobj
|
||||
10 0 obj
|
||||
<<
|
||||
/S /Transparency
|
||||
/CS /DeviceRGB
|
||||
/I true
|
||||
/K false
|
||||
>>
|
||||
endobj
|
||||
11 0 obj
|
||||
<<
|
||||
/Alpha1
|
||||
<<
|
||||
/ca 1.0000
|
||||
/CA 1.0000
|
||||
/BM /Normal
|
||||
/AIS false
|
||||
>>
|
||||
>>
|
||||
endobj
|
||||
8 0 obj
|
||||
<<
|
||||
/ProcSet 9 0 R
|
||||
/ExtGState 11 0 R
|
||||
>>
|
||||
endobj
|
||||
xref
|
||||
0 12
|
||||
0000000000 65535 f
|
||||
0000000015 00000 n
|
||||
0000000315 00000 n
|
||||
0000031292 00000 n
|
||||
0000000445 00000 n
|
||||
0000000521 00000 n
|
||||
0000000609 00000 n
|
||||
0000031268 00000 n
|
||||
0000031746 00000 n
|
||||
0000031462 00000 n
|
||||
0000031501 00000 n
|
||||
0000031603 00000 n
|
||||
trailer
|
||||
<<
|
||||
/Size 12
|
||||
/Root 2 0 R
|
||||
/Info 1 0 R
|
||||
>>
|
||||
startxref
|
||||
31819
|
||||
%%EOF
|
|
@ -0,0 +1,228 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
|
||||
<!--Created by yEd 3.18.1-->
|
||||
<key attr.name="Beschreibung" attr.type="string" for="graph" id="d0"/>
|
||||
<key for="port" id="d1" yfiles.type="portgraphics"/>
|
||||
<key for="port" id="d2" yfiles.type="portgeometry"/>
|
||||
<key for="port" id="d3" yfiles.type="portuserdata"/>
|
||||
<key attr.name="url" attr.type="string" for="node" id="d4"/>
|
||||
<key attr.name="description" attr.type="string" for="node" id="d5"/>
|
||||
<key for="node" id="d6" yfiles.type="nodegraphics"/>
|
||||
<key for="graphml" id="d7" yfiles.type="resources"/>
|
||||
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
|
||||
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
|
||||
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
|
||||
<graph edgedefault="directed" id="G">
|
||||
<data key="d0" xml:space="preserve"/>
|
||||
<node id="n0">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="249.93318675648084" width="150.73691016175417" x="379.82322525840146" y="-15.0"/>
|
||||
<y:Fill color="#E0E0E0" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="90.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="49.609375" x="9.991977284848872" xml:space="preserve" y="146.38688006175698">Internet<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="0.5" nodeRatioX="-0.4337124711251771" nodeRatioY="0.2841945985857549" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle3d"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n1">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="402.28247680692664" width="162.91206076630084" x="130.0970161695911" y="-19.152021620717733"/>
|
||||
<y:Fill color="#E0E0E0" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="79.45603038315042" y="199.14123840346332">
|
||||
<y:LabelModel>
|
||||
<y:SmartNodeLabelModel distance="4.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="90.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="84.970703125" x="9.113003096740954" xml:space="preserve" y="302.121484753948">Local network<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="0.5" nodeRatioX="-0.4440618266451515" nodeRatioY="0.4622397449460143" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle3d"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n2">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="283.8426393358113" width="150.73691016175417" x="138.89277718906638" y="-15.0"/>
|
||||
<y:Fill color="#D0D0D0" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="90.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="86.833984375" x="8.098407213028707" xml:space="preserve" y="176.37212114063328">Local machine<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="0.5" nodeRatioX="-0.44627455741040206" nodeRatioY="0.4272958641151755" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle3d"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n3">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="110.0" x="166.95265436079174" y="97.8883879466967"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="82.333984375" x="13.8330078125" xml:space="preserve" y="6.93359375">AusweisApp2<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n4">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="110.0" x="409.06939432176046" y="97.8883879466967"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="65.939453125" x="22.0302734375" xml:space="preserve" y="6.93359375">eID-Server<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n5">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="110.0" x="409.06939432176046" y="-7.134920941481575"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="99.255859375" x="5.3720703125" xml:space="preserve" y="6.93359375">Service-Provider<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n6">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="110.0" x="166.95265436079174" y="-7.1349209414815675"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.142578125" x="29.9287109375" xml:space="preserve" y="6.93359375">Browser<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n7">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="30.0" width="110.0" x="409.06939432176046" y="199.59487324412942"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="88.029296875" x="10.9853515625" xml:space="preserve" y="5.93359375">Update-Server<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n8">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="110.0" x="166.95265436079174" y="326.6678526626905"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="83.4296875" x="13.28515625" xml:space="preserve" y="6.93359375">Mobile device<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n9">
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="32.0" width="101.0" x="171.45265436079177" y="202.91169683487496"/>
|
||||
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="98.01953125" x="1.490234375" xml:space="preserve" y="6.93359375">Third-Party App<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:Shape type="rectangle"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<edge id="e0" source="n6" target="n5">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e1" source="n5" target="n4">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e2" source="n6" target="n3">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="30.71875" x="-34.70611583776903" xml:space="preserve" y="28.92603874253608">eID1<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="19.34674322102171" distanceToCenter="true" position="right" ratio="0.5329867452764283" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e3" source="n3" target="n4">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="30.71875" x="51.6604446461962" xml:space="preserve" y="-21.17213706476275">eID3<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="12.10572917405711" distanceToCenter="true" position="left" ratio="0.5105195151628484" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e4" source="n3" target="n8">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="54.54734563920826" sy="14.111612053303304" tx="26.398238238132535" ty="-16.02468140151575">
|
||||
<y:Point x="276.5" y="269.0"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="32.265625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="36.77734375" x="-59.55753414077361" xml:space="preserve" y="149.35286035153882">SaC1,
|
||||
SaC2 <y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="0.0" distance="1.8153536324476993" distanceToCenter="false" position="right" ratio="0.7870346060615276" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e5" source="n3" target="n7">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="54.971035876728166" sy="15.038770784339903" tx="-53.5611005145696" ty="-15.000980657566373"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" rotationAngle="22.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="45.220703125" x="46.57289611424528" xml:space="preserve" y="33.28619210241317">Update<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="11.307275195559956" distanceToCenter="true" position="right" ratio="0.6189315207731947" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e6" source="n5" target="n3">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="27.54734563920826" ty="-1.888387946696696"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" rotationAngle="337.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="30.71875" x="-101.58040528438903" xml:space="preserve" y="9.329639509720586">eID2<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="15.099869002821848" distanceToCenter="true" position="right" ratio="0.3864086416472374" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e7" source="n3" target="n9">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="standard" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="53.359375" x="-54.679685116747294" xml:space="preserve" y="29.445254182778">eID-SDK<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="27.99999999999999" distanceToCenter="true" position="right" ratio="0.5445528599796611" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
</graph>
|
||||
<data key="d7">
|
||||
<y:Resources/>
|
||||
</data>
|
||||
</graphml>
|
|
@ -0,0 +1,468 @@
|
|||
%PDF-1.4
|
||||
%âãÏÓ
|
||||
1 0 obj
|
||||
<<
|
||||
/Title ()
|
||||
/Author ()
|
||||
/Subject ()
|
||||
/Keywords ()
|
||||
/Creator (yExport 1.5)
|
||||
/Producer (org.freehep.graphicsio.pdf.YPDFGraphics2D 1.5)
|
||||
/CreationDate (D:20190314163036+01'00')
|
||||
/ModDate (D:20190314163036+01'00')
|
||||
/Trapped /False
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/Type /Catalog
|
||||
/Pages 3 0 R
|
||||
/ViewerPreferences 4 0 R
|
||||
/OpenAction [5 0 R /Fit]
|
||||
>>
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/FitWindow true
|
||||
/CenterWindow false
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<<
|
||||
/Parent 3 0 R
|
||||
/Type /Page
|
||||
/Contents 6 0 R
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/Length 7 0 R
|
||||
/Filter [/ASCII85Decode /FlateDecode]
|
||||
>>
|
||||
stream
|
||||
Gb"07]8gIEYpH@3=6'lG`nq;HU]q#?JTHO2)Ze_H+eg^#qu;6@[?d6V4qYm\$7oMj5RP_=iVW!/%s**.
|
||||
R<a6SkC5_Fb<LKu0<iuMro<2=kE#Z<nbV2,O&kePit'3(PE-fhYP@n_gQ2C2j+!Tnr*TKua8c1oJ'1(V
|
||||
qu?N`9)Ie$rqBe"rVuaJ5Ou#Wrl[Nt*rkmtnQTA`k3L[7cHXtOe(jk(1]3$>rd,1U-0L:i=8Y:TIS=F(
|
||||
Gr3QprpoNF:qc0Jp9N!d]oD1s55Yq6DiMfPrWV1$r:]1.s3m;/:ODl[./o>TG[#6sqXaBP1Z2X>r=$3]
|
||||
rO0joB.Q>CDgfPG55YrQOOUE<gFp;#qh$Opn4/>p>EA&AY90u5r37;kH-7(=fj=sKIqZ%Cq8FHT`_bP^
|
||||
c?&o2r<JPdX1r/C5*1Y^J)70-)T]Ces#TY9hlAhGL@om$l<hpl^>cmjb!/F+s7(_Wqu#?mV3Xd#qY+nj
|
||||
e^Aj"rF\<aY3msmr^XGAqYC.2\nh8;s7]$3bIQ3qijY$WkY1cqD:oT8orY[6^0u@0dk\.lO#IoIDl#)1
|
||||
jF!HWbiDj<hHI&Ai:U,`:T(n8RXX\6>]N"Vm5]Z.oX[&/s)E#HrR&28>0AI0DU-arEmQ3\j4X>gpte1*
|
||||
7-hu)?Z"sJ6\g0B>kBRdN9\'$N:[SJ\!G#9Y<sgQ%-Z6e#PC74X4GH[Fe>hBch5N&HHZ2I!_0QDO0m4i
|
||||
mP>Z%3dUgG3n22hN)q9tN^)71SNa.'cEi6I.rf6FO,^ou[a%JbN%$]UZ%dY?Y6<?6f<I0FmGKbGT?Gta
|
||||
Ho@l4FJ^S8R3[7tGiAZaAu!)j[(kR%EI7[8*gd8VYPqSJCnBM01,$AfO43^o%H$X=q6(V<;!S4Ud>Tl?
|
||||
IL(#tX`_WAhC@_lkT0,04$?cfiDMr(bm1Aq=]q`i=lQ*;n^]5RJ*`/m92./<05L0.<i_ai5Eq2Mg>f88
|
||||
3Sh$4<V+P"hra;)r'@1Oqs0F%b*qkg_l=4.+4LcTAPcrM0+Za,?61l%*,ij4%W-b*ZUi!\+jlkR/F]@<
|
||||
dMH)&_E<n5LfV?l-SXu[loqLYSlKLWU8LL1CT$:u[*!?0qO=`KU/bKeDfqS0EmVn_Vj[GUbY+s<c.:3.
|
||||
R&,P.=6c`E:4G^?^pO3t$Cp;)9:iXGNW%)?kuB?>q6Ld5:F'g$p2ORXXgPh79Ji5bOnn@sHsAg^Bk!rO
|
||||
4[%chV3N$M36'fL>ea.@,<!T,hBk6,&SD`K1lOWEm_=/J%dE+PF"Na9)NNWN%RmSs%0sX2(u*^<D)qWf
|
||||
cPT/(@)i*7gOkutRp*(<k1OCR!J1"U!or4F_!A+uT(/@-Jjunnch#E3pZOnF-U[(+PIo+E:Ceh%fg1nS
|
||||
J)e625+W#:4/+jHV[O6!))sqr_Wr_4)*&O]en1^!HL/VkI.Vtrqje>O'J!eVTO,3&TS$9`<rsDu1p>mO
|
||||
kb-Xa9-?SFJIKStcF`Ymhf)+/_^9qb8oY.?*G3hPJIZ"g]*(0.jR+ecTX+H[5\K_;X_?7V0F;:]()"^X
|
||||
@jP<(/%o5[f$5=@aa%&O>Tkc`=pL=t/l/O'mOu>VkF85.:TKl#G'VfXFVX(R#@U>cV`AdhB%V>HIbCUi
|
||||
["Hq3Q`!i@>j#f9icmN9WkM,cVk*g&:D9@_*o54h>(c6?02F\$P">Q4Bpb_sSYm>4Sd$b-``E**Q-ioW
|
||||
X2TA<kuF=k[8*@JC6th=]LS%69^TrHR]k9'Bc)7>Q`$D;O7IRARUP5M(r*!g@ljRUHXE@fhK?gZXf'Kj
|
||||
q(H*iK.e;K2m73YQZcn]$<fF1p,=gpem):_q.aOB__md5Wjk$U]-Gp4%#:_,.eiC5*1Xm;s,'0b3B_.j
|
||||
X[7(`I%NXYZ/op!IS\:>`M'h%QKE57Wl&tC1M=.bdTd9RBg,_P0k<t!_073?Uq&JYSVuBo/pS6&T[lHA
|
||||
G[6e_)F=TS">,L@6Mppdd9lnc46@X[DMEstd<0V.V\%ZSlcAUO&-'OM[NiPce++;^nbp9gB^gN;&PTm)
|
||||
&(i!'=HC2/"Tp>`#AS`jYM]/p+9'8Vs/<aU""EI/kFLn4JUF*dY60:R?JYE4XP[7/pe(>srnF4GcSbK=
|
||||
LS-\cdU?q_cSkR%@e&^X`P=^Dq^Xk3"5Fs[HKc`(`t'u5aJ]A#oIO(WAnZc'6buOrB7\N_0ssUU\<]Nf
|
||||
NbglL[iK&@]DrSjd<S#L17!JMFH)<1$I.oI;2=lUMOuI&s87[j"fauS&R>KZ,8?U-f?""Z$'c@`V@oP/
|
||||
T'8elpE!a2Fb3s`7c'P,p'?tm&-iW`kr=U5ig60:9(uhEDj_s.qCoNT]$A8e<ues"n%6j>aNjXu4/>cA
|
||||
&R4(-Kf7s>H6ms'pUU+JZ8#.%fU"QR7%?]Ycs)RN68a0D&?J^0NaqD/q;o7PHKhW$;s;N')&WrKi[M\K
|
||||
AM=.QWrbG])*UJF))?$4"&K2qh&&2qi%gK:GT0N?QSd.g]d#a2HbNZS1Mb@=*nM-LqE*,Q(eW`"d<a1'
|
||||
1l^E>K(2&#SlDQq9jjoB)aYWBB?XkSB/X-g0Dou\ai8O:+I\26<Z#A,-5S49CdkA4D0G7FjsHfqB>2Ul
|
||||
"(J@,HPsDqAJeXZUNIr1a_%E6!<)$W2E;(u*"&q7_(X'(P)8rI+ZV#UEX]ieF:$fDk+O]4C>;IB.nP<`
|
||||
_@OG,k]l^M<\Tl\K3i4,+1&0fV[Am3k/*m]gZU,/G=iNgKKH$Y?/_nc:'7GaF?+;\cc51A2Rk95=RDjk
|
||||
_bD7kfFLom.&EYN]@#U]Q@_]d7[^UP/)/:4XZgRgT6.YB)COmUZ+<_l3Xo%U1kB(;)ZI6+bu-3Lis3kf
|
||||
UGf"7FF?u#rDNIe;QD$GcP/nnm6tNWg`Q#Oa>Gd<WjV<2YQQhLhDb;dkB.R4o@NNb+`MtNN[\qR;).Ko
|
||||
]OC;rc1dAC'^Qf%]CoYt#JnDciq%n@XF-<tfOLmYKm$^7jhe\S>2>/Drtsa6[q$F^(In^P9](Kn=Bal3
|
||||
pI=DCV`qE#Z^9Hi7lrnj5!Pg8q/j9`]?A/tO5c``A\QNn;0"STG0hsW30BRl0U#ET]PF,Z\MB'&ZO1Yu
|
||||
_d"`\FF>Li\YA^^)3be9HVEl!G.>X_YcmigOO9VB&S7%3<7#:>C4bl[;%`\E7Zg4J/L<>7cm+N?`eX<?
|
||||
>-Uk]\4QMl3d/fgiE4^RnEJTTOq0O!(+el,purh<VlrnjORRAtSX%Ll)nta6,N6cRpX%k]ZT9*K,ImH&
|
||||
HO'h"$EA$4:*"Bd_'q&[m\(sc@IBhd+e*i":q28h?\@`ZO1BYUi>sajmNM5&KmO)C(qOk74Tn-$KR3tW
|
||||
KGm>l#Nbl*%uKbdHO)7=lQ4Ke?2'HMdli@iqfE@b_48D+1aQ5Im$s;^Z%l_Ap8:QVY2SfBA!YI>E"<so
|
||||
;RhLB;3*RhpQ-VD%iI;":i#,SjrS91gkU7?I'r$S&&B6Xi>t&Y)sc`0RW.sglZi_@K5qKn<@0$%HY=Ep
|
||||
f>9\XWCsaJ8EdX?+OAY^#G#0d7sj7D_``+ghUamn*@0E+m,M@&4iEPoE"CW*?2"oc0QfS76f=h;pQ2Vk
|
||||
LYu8E#7tJp5MSWh?*iBg\?Nk6o_KSU\O6CF\;,Bm<[Z\/mr,^kHBu/#m\)8lC[RmKkXq"baH=)i%#6pA
|
||||
-ZdtTintOEr)Xm+U!ldS;;iQOI%LW[c/8$h?84tC.h;<8A%@@U*7s-j3q'B)P`FSYg7"('f@/$7n_O'"
|
||||
d#NP;ijU`!6O,ao\$'SbeJ`J>3PXs@o'VODF1Ye,p.4Gno+-T9s4P+8@KV\86fE9='[t:>rUb9BQfh^,
|
||||
e,c/S+/@T1/'"_arFtTjLjQui^%=7Dp6#N=1S3.PU)fdW^9D:+*ONt`*KB(-/6YQHKc;q.QG;3m>OoJp
|
||||
>+YZWEk<#K.UfZX^E[*b1_uY[h?p71ig9PDmCr%[3$`;=eX=LYc(['0[\I>8[/=KXMjEfPf:p5cbBAdZ
|
||||
4dt>=I%B/=S+1hVqhYpWCGCigHGcJ"jLm<b(+k$H>ec8d1$s0MWnc0S37)c*f$I\C__PPRaWp-!Hp'su
|
||||
mDh?<O</id_`&!uRca*s6gH^Vd=G&p@lABZEs3p$Mq21kK>@P*CF<]_R-pV=mDb1N%*((CSu-:pa)l]M
|
||||
363HWYi9'jr3fJ"H)n<%4/T@`a"a.Da"Ef6:?PEnTt*m"`8_ekUb3&i8[$oi@7Hl?-C]AdP4Ih0CnLBo
|
||||
1T`36f^\##h"QhIO8i!tFQ\+]jm,//mP"Q7?Ro*67j(c6R&*;XPPsHZoWt"YY4<B9nXgTMp8ph&#A_Wr
|
||||
fH:)pO1r71"'o7=C4Bp#htb55r`77p@3k"FYQ&#$J+\!qeHReVn]s;I;ZlhZoj7t'r4N^'l`bhV6/sK]
|
||||
=86t`g\r%HrM,Bj#WDU%oX'*.])UmUrg0DW?]OQ(3P,7Pkl-pDqd5BOIlY+?ZQ7k373k'&]b(L+BYF(\
|
||||
FD!Z!Y+o2j-@Z?BFpV*5cKhftISLc<9etHDUWj3dGFLM]B5d/OFkAj087l`upZ8*0W@5AM-fQ`eR\,A7
|
||||
"et=BcN7I/q>&>2NY23:lG[BEn5D$\%/_9.Z[^21Cks]S`P8HR9Rjm8<.-A1gXrtqrQE)0L,4:+a1!/-
|
||||
k_Is`SZ[roV>r-Rf5P9Gq%g*Z=#0Ym[U_A\XWQGkoA.nRQRb4E9Gl@QTX:p"rI!jE/TbB=\bt*k'SRsG
|
||||
dM=8Xj9hI'gZ8d4rjfXG\O^b[Z/c63b\=Xn_,kfoEeP"hmW.E^SO7GibSQ"=l'^t;O=PlVXr'(-ElNS'
|
||||
ZV-=M/>gbSb5%4UQ,IY'/']#Q"_6_hNl`$R+]g@9EZd`P2!@30j5=afEQIKf)RhSradk%chu[QHU<+-0
|
||||
L:Qn)=5Y^7`T;uNO=Q&QXuM_PJQ'+6,jD0N\6K'cnUe1>O@jPIDW5j$$67KOE0abFDabt6/%pbjRoB.T
|
||||
@6Wl_j1@fK4hJErb']o;G>WCC\KeZEf]<Il1LI\50[h%qcRR-s>co&72jVW%XOu_h<uS/sjDs?+aVDjZ
|
||||
/"d;BOt-<%-4R7X&c3]]K)I!@%EX/BBftOL:];n!pZZ_/niCs>`dG@$5N/2P2[[/=*h%E!-&u=*SP-K\
|
||||
j_+f:5,bRM(5F-D3"2:qJR=H)('i`dm[h6,J20AD-0W`>;MG!r4tM_S"4GrH^#Tr!hmO?Gi\2>f7jf*r
|
||||
MZ[mlKhIo06WsY>a1ON=:S/Ik:Q+8+>fO020P_maNe;;.AJU&pYW*WGiolP.AoZbBm9t#,5nZ#4"$Ki2
|
||||
D$opeZjU%W*H'N67h-HcXrr,;4F"RI/Iog=EF<*HlC^qWs6am\$ban)T7$B9L7`Eu+p.u)^>[Eh7\SXQ
|
||||
g;0_P*I\iFIT7IpmbkK^[7BudCE0#-aFi=X4$XmYQ@p9O_]d@D4!(%6M?@t<pCO9W<r9gTJ8X!Ld",l@
|
||||
nc8W]8Su6Qcjq1<RY."Me9IM%,P$Jkq;VI'<,NLj4Yrl-iW.fs/Ip,:57aL>1\^"[nNH.uZKN0EDYX)J
|
||||
m"dFR&7.'f`E+$LR_Sfg=ikXA`YX(FA>Ga0iTJ%3Ne74;UV7^RPV37\asp6Ri%_K6_a-nQ1hrE#`\V@s
|
||||
k;PN'+>juCC+t$r!kS:0?Z8ho@AAR63;i3o0YtrPV$7p<o]=SQ"-jK"',*R]Ff>D::H;Ud*Bi:Yo60^g
|
||||
Kcb*@bVo!1$3WoC[=r[`<N)8:5$ga2Y/_./_%5GWJe)XB3!Bdif"BrU'7?s035o--'+:^WjP^f-/XumW
|
||||
A7d1+.1YXm81g?@_3\+aS73d:9@Nf?-FXApi/G[`+gaSp(`lFl`a).B(/Al=UgD8a$Hs-D0H!Vo.)IEh
|
||||
dg_p/IGE08)t[!n1r:]'C4673&3?uSGM+2G_h[?UG"f&XMA:<1LJt:m"47CP358cWZ=6!;>>PIB0C%\e
|
||||
1:%W=S74ce\ZMdU29.@W^@V*i2u]35s3EaWqSS(Z"2aot5([Q9V^_4o59/k'"-a=Gr[X#l0deW0#QI?f
|
||||
N'G!os7X$10-/:F0iT]qOm*HbE%rBWj-9/DKbIa1kG\X1L[Y](Pl/MRT("6N*m\qh"k!(%iH<`C^u^PZ
|
||||
?spp"S/lZ!N7lejXSm]/e:mc^I,KdB5C;<*15!?W#r^Ps7bfsg+G*[E_gU_SIcA8Onnfu8$>8]k6bcU7
|
||||
p;,[Cn,]ST[cR="\S0o?9[=?hK?l_]c1>"a])Dk#]`X^NG>b'F^0A7r6XO_Gjk7u0#`]go*T:/"*k/QK
|
||||
T8]Q:T.t7S\(Q/[E:iZSaSlPe.oB4<^RWms>"sdg<Q@AX<Z6GO_pm3`:V(&s[*aeK:S43org'V)\]/hs
|
||||
EqIZGc?`]_H35uZ;,J9.b(,t`;eIVn&t%?ud@'Z9cPirRDpk(06Tp>GN_Z8fHGgI.2t";k76:dRdqF<j
|
||||
q7-c>;a,B`XI8#W3ilX4:I6YdGFGYN@On9&/9^]#3`?!gf;uCD.iB?0i\-Eeb%Id;WG#oLL@:S@BG]Xs
|
||||
8TR#Ea0"fJ7lD1^[O1sY@NZ1<Hp!.-dlJ#b;pcTFA-9.rD4SdA)WjbB_Kcu5;.)dl1Y&n=Q$aiEJ$SV7
|
||||
3urtW"KsBM>CN=*cVE5'C2K]`@:'V+-`<jcN`!:J-+M.aI\9b#%?PZ#WacO%H2*s\WGBNWSm$i!`<'A?
|
||||
oP!.ASrV.Vg)ei:[-F:N'he,gr/CUT-W.P:[)G8Tj<a-<G];t)+rn#T081W;_2.*_*2ng`%rBU?kG)F[
|
||||
c.b:dDu#TKNF]Yg??I7c(@>)NZY2iLebZ,#&5[/g&iW\iaCTE$:%'C[`mHf=N>XC'ID@93p./eFq(0oT
|
||||
a+hk*X\688HJ;6>6aAj?\j.,BboG"BE53hn`ZB*KD=:bHX3a9M%h&mcX4l4H@5G7Ca'B[aO2`-l]!TX.
|
||||
b7XPR_8@FB`0[jgqQSN9JNkca!%K<^0uh0cj"OJ(X(h-UX^+$AIeimO^Kd@ppNa#B-BA&e0CYf#s$ae>
|
||||
gc)a?i4o&Eot9-8r10!P3)mK$\(E0dP&V2iYIk5/o#dSj]IFU5/s4<G23PU%;j,(&Vl3VdlCcfOnd5V6
|
||||
,NKRMgHo4,Ed;d^j;$N.6XJ_jYWq1`NY9s/=6RD-aHb2De$]K:H1es4/&]9R$@,WFVf6p8"3_YRWndPQ
|
||||
e>JC7)CopCgU^J-.hi!*%s`j1+oNRf*4rl#6"C=JKf=d?ir%tp]Y[oYBnjO4'_:N5afC?)(KipIjAk.C
|
||||
^%.'B:`f07IB"HoMNgeu<sPl(OB6#Z4-EZV],Z>h\nLlFVW1dZlTb*.nW6hkp9<UXRGLPnJ*mPA($a49
|
||||
bT9$;[&c-Y4]#m5:1a,aiA';$?WS`VU&X-hggbn<KBu4#R^>!T=7WHF`@06%Sf#kr079I28pWm"0M]o4
|
||||
E0?MnAZ4W=h7K?TL8Y3dW+G@%d:=ceC/2#ChN?RH>_do16GA4P'mF<N,`s>2fcu8?$Trhqe7Dhe-F&g_
|
||||
,r3r6_gB!PHr4EiC0dX1<aDoKMW4E84='>4c+<5c1*cWAqN)b%oR"f?k)hIc:CQ9na@J)B\nS$./'""2
|
||||
bM0&j[^A"jpHWp(SI(`C,2[I*,8saHA,+$!Lbtj>DQ@JVojpOi?mBteWJ^PF%E"MJN1.K?TT(6XB!eg1
|
||||
UHU3^P;F&Q%HMH/gR>s'SMiOZNCt3M(`Pa[]uYpAD)cRiE%K`$O]p+$0,fo#7aGtYJi6@7pPRMAdGn`G
|
||||
F#9S]EMWK[L<W)eVXTd-m"qBpj`W%dA%U:1e_dNp9^cQ,P_20oTFFCd)id?+puR=^pCRRGCe7[&N@"G&
|
||||
0-e'8d7nCucK0:[>!@b/XMKHFlCqp]^`52LbF<42h=Pl*T_PX'Ng91BLFe(rFG.RWr\guD>K(Tlg*Yc]
|
||||
Uf-(n<@)_kW!Y8.Bt1l%8UPKF\$_.c-\h5aZ-DE<H2eHn;0D5TB:mUQNsDNnW)nF*2+QpF]UI]g-j.Gl
|
||||
J[k8B5).LpZjuE@ep\nIINYbi@iFi%c5#tf[Jc<V=lZnJ_k`]t]f2dM1t.-SFR()kO.Xf/E?jnM&NZ4i
|
||||
bquunh_C,EBOlUtO8cS3oT+;I>J_Q\o`Y!d`#k#Wo4QC!`W$W*je(G>ht'aS)E&pZ:>dZUa*=%%RN`hh
|
||||
cppDD,.aY0!j/kc"<8u_4=$\8F0al5\5kql;3cl-Rkp/ZS:S62q+K+BdsI&bX_)uPdToZKJYm,uRJlOG
|
||||
B@r^k9hi*>MMKUA`42j>&]TGWK@W%&B1Y6Q/;tg[3Jk_i8?#;eE$)U%KZ7G:mI#HkC1j+*lVuqESWZ:i
|
||||
\g6%/>/ja"c,hV1]$]ZYY:420jpXr,OlHtQ'!p&A,L*%KG&6QkAbjO4GPGb3;dU%'fQG<e,X&p%]:0a3
|
||||
G)bZ(K^UR)'43:@6l9SD/YF]_.=lmk<c(LD,`lP(^ePYXmmL)RO@U,-6^<Ut80-!Y'/=OP&08T5G0%:G
|
||||
d_?(POT+&ShqKEQ9=6sN<IV"Qo[gI*1Koej`if.(ZDqU#Huek)3nELf['sWgP0*[O[ej*\;L"CPmrlI@
|
||||
n+]HsQ-'%<\6sm`9Cp%P]iR7_hMY2I@DpY\#LL,[7+<KA(AC3)l&&VTcF%0r@eS%36M,`I:/'A,^lmcu
|
||||
0k`a(7TDt&7^o^hYF*Z-%3mrQ)GGuOfJKmdgISUtW#dcd_r7*nF(1NR(cBrDp^p>T/Vj%J<cSm]VocG.
|
||||
jLk3@>33YtaUD.&.]IMhhs3k9;n=C@qkA>d0P29=PTDnB&a-mO<p"T_)kd1-glb.Rl6u'*f%cnF/7I):
|
||||
6Op<qO>H(AHraOO#UtYrbgSH[1,t38CqY-lL+09<%3NgpDb<J0p(ct$79lMsiI(bGeTE#,^TOU\EJF@-
|
||||
X^&Dh:mDQ:]#GsO<af%,k#cEGS^!@%+o*ff_i`M-e_?NMs+unWfGR;E%g4jb$DkVeRI@!7-Q7;L@)rP2
|
||||
>W*8houM#:[:8TA_F)X%e(:r&CDqKlGnK6)e&FFk0#BZ$c1b!KlB3(7k@odE1</$:_d.%hBG_1`]_!Q*
|
||||
3T*f1q<?l+:@I>+:lk?\7m?Yt3TA7d!S:"Wd[WrdR7ZG&mP2q3FNjs!`V$Z7pPhNr)8TIPR>g)g!,*\a
|
||||
RI.s.0]\[Z@qd:bV<k+WpDWLbAhq5!#0g\GpKkGOONnW1ahb#HlV+VYV4#Oq)^$u$RDjlVRER4],L+/h
|
||||
CF0ij'01JUit]2FgXo"X)hm]766E\"'Ii0=^%.Gsmg?U;18[fZ>VeZ8HJjjBV-dX.=8*QE53$B)A'"eW
|
||||
f'+s#C2NE`6oWY=<p:?Zbn&36e!RmZo1QIDI1N&;$Ncmq:\-]U3V71[9*!<3Cite>-1^ZGDU34b@S%;)
|
||||
LS#Y3g!S\^r3n7onTX\@f%[4C9[!KcC&MtIG<!=*f%b^TA2>teLLLIRo+g5L>Y_+h>[BNQD:og'j7tQ=
|
||||
^::W;2qkme^7`0Ok2S!3W.^.]f\GZ36!NIRfA?0+#iE7palBA6Mg1&iG9-M9Ff`97?f&K.Ra[o&meLTj
|
||||
Z$0!)dbVNkj+rmL4?LO4XEF>1%ed%qE;89qgSHFo/nSh<hK@n+pL<O?e#+s.EGMh'f8tb]]5u4VBAM.Z
|
||||
IJ</5IT#(j]<?R*ouCChlC"h]He5NGi0nXp]ehgU=#H2Rgt"+'B"r_BLL8okBgJ!KfI:YRNVP*u]t92p
|
||||
iF6FB\g'>]D)Zmtp[5l25?n*!^Cm[@fXm/ln)ERGHP^V7HP^ZG&'l,?d;E`^D5b/6rV+"kpn-a@p^=aA
|
||||
D-t>8rujK48GjG*H4msOqh'BMgZ-WIhX>bSZKN>Nn]@6Rlco!\;"P,f$_oCQrk@WY&7hZN.Dpt%TlpSa
|
||||
O8/nfqD^*<@#R%n`/lD$*51sUb047/Oo9u%X@/l]0PXX;QE9AgP_<)C[,tk%X9YcR`!e"/AEPV)@o
|
||||
Bq:WQU%e9>"Z_+#Qb/AddWDc(%9f/`3fW%,EMD2i)%4&Wd6'-%^G,mEe,KYm/Y4J&po%QD02p6Je=-je
|
||||
G*0^a*Tra<H9/qLIJXB>+j!c\.ao;*7N0:8l&@m]3Q&;H;Z;A,<Xd/T0h]#FB,&"/Q[/L^Vca2TKQ55)
|
||||
37^FP$^tudS>V=s<hU<[d_Lt,#mh@'8fnWbgW2NUHis<$.YFTC6b(J)Ah/JsOaWQK)F\p'Nd'o;QF@oG
|
||||
QDRSS!@e2M"BjlT$;S?%9h:4TY)u`l8PG(l<ZeR2aoa)N@n#<1,,p^t"2m9<.^NFgD%5R`d)4a[;$cD6
|
||||
Eu#M(LZkKK.'l+.SeYidZVkW&1fA%:;hiZ%g$,'\C.Nj:Hp;f8F2(UVi1-63k;1Y$#8b"0ktS^Ko1`eU
|
||||
OA+)[1c6G(WP9nI>-0s]2g.jc*GZu#W\j4?H_=I5bmHG'R_,93H9?M>`HFj^`Z`dA'k-"p?C#e=H"[A+
|
||||
$A*nWljfQZUI<ehTRXpV(jbAtEk\Y<hEe:Rlo1J&,9SCKFg.f/R>X;_3]eSQ@?]BtIU\DLSt/o?JUXKF
|
||||
VcdB3Eb%(P5^u_pfKe##Z1qEFohd$je@OL9lE=D6Q*4/gh?(Fp^=%#3KN>8]rc#N3]:omMd/DI]GlD/C
|
||||
X3(8ACSgtJ^O1K#?INGld#r8u,R-o6IVU*JTO.0*D(_(PQ0JO;BQ02.9,fA`0*8<KfT+2ESSr;]NZ?,<
|
||||
bs[>]&^WlCa"Tmfb9$2_N1S&n/UT?q*Kg(a+*huST/fQT=Y#*PR3d^c;#`I0VW;7<l#O0h`f,j8AN9RG
|
||||
Zo=7!o,6cO.tOT\GYH'WhVpoZNlmV?1FeCSnO8t>5JJWEGQVUO/,oO&0('KnJ4s?.*W*fWCsVDVPJ/^?
|
||||
!5(Vf(<.!t;Ef&N[)L!#Oio,EA_%:*Vi7Z0Qog$0oo?g$j9[/&"rspdougprKD1OlO^Rb*5#>^#>ZcV"
|
||||
5,bB]#GoP_g)mG$noG?8*iU>724!&CY5;0t1P\b)2B\EVDZ]UUKt:Xdc?Aj*H$Zon.Nk^To.hRkc@9Bj
|
||||
5;O8p;LX-ODlm48JIe:X*,T3?Zbj>S<H8-I'R]Atr)W-9$=q_iH0Nj8@<jU>H*NeSh6!F&rMJj&D95k^
|
||||
ietdq-@Aj^Ytgf*jl9@cG^WE,P?q45PA[TTJU2fE7PuJgB<[R!\i7dUO?c@S/[naZ7[$)C^:fUnh0_DL
|
||||
5TY7p$"PG0OK_A#SPcm"6KH(080GiGXH5[Pm2e$[e!GA,OO!?j[7fXQ!pKjf8g'YkNfZMnV&9n:kXqM`
|
||||
-?6WVqk)NHTKsB"Oi\q[:7kM@cQnUk'mOMD;hbi0OKI&#!b(`s+b@r1.6f)>YfdWUgkLdPN2=)uW&$Io
|
||||
>)RQTrUTb)I<iQ+NYGCX4rklWGe.NKIE2&oc8Xr6\GT;#EkB.qOU$VumMI"R_Rh'lcgL$bll<&@d*jAE
|
||||
\&]MFKLfXX'h;mm-7bs/GSaKSP:'/qiR4JrbNE]VZ/(JM=T=.p)V!>7;hq8#-rAnO4KX?&_XmW^s8GF'
|
||||
ohM-t1[p0H+:[AcX9>eS(K,h&]USYSR=VDRG'NW47%pA@abhh],=lAk^'V1u-!Pp1)skXFY4c2U";=qU
|
||||
oKt:U/*4Ph7l(i(2Z-u)n/"5Vpr^NX?M,#kX/E2MA*>AJ4nY&m?M0Q9T99C"`iH![q=CS`#[]^u^V+s9
|
||||
Cem3*[T>V'[\o^K*aUuurP*Z9n8lk;2L]ES)jMR^nBa2Q<1f#;Db?JYYU#_<<OJFFCEV02^f?JV68Aj7
|
||||
E-1nuR71@^Q`$.GK'-$S$[iaP'IUNAX>QKf%1D=D1(jTU)TZj^^K`li]'ipH55A7r?'/@BRj$MSneG=:
|
||||
g_oq_BtnbnJ_lkrK33P(P'Gp)9_H%Spmg5cT5gpF7iGXS3UY>!Q#XsYX:3ok&]9ZFcgk*pC-"7/=7;Q9
|
||||
:l\RG?_O>;:I#VPF]ZUmZd)Y&Wa&?nkbZ&Qc$\q'?/0LFc"aPI"*]s3VV<_LJfa=/&0=qnfFKIfaf*Y%
|
||||
."$NLZY&23It,AdD1sW%f.XktVf'*]q/Q9SN.XQF2E(LaE+n5nE9fpKW*iOO]pd)][L^ogZU;6--[i(Z
|
||||
\F:0QgY&Y\7:N;t+'UNt@[RTeX%IW-*`uA[`1!U'B:2c3L-,R-2E@M;iLSV[W:>:Xd*@\X[],H[/,]IN
|
||||
;/74*h$H%)k*Qt]D8,"r[G`d#_qVcIXD6o5SG7#oj#A&$P[;)TSl@>'1ogC8r6pLZk;Hf"UO^XF?^`hm
|
||||
,;u>0pO6=h_HCQ%pr[68raFWFeBQ/\XVEhQ8g?oaF^"1(WqeqL$c"4IemajRXgM@ST51RE.JtMU-(Ui/
|
||||
CN\]AX'sI\q9/,..hM/c1p%L":#S#3R`4qtoWLLW-5]HO\$\e:;JX7]lbdWB4Mu*S=UMp#U!Qu"gXT3L
|
||||
a'G=I-t7m6/'nX<$$q^UIM:X:DejhQiA^;7\lrlNk$D`'q"9%09amNZamk/D"LH#4I+)921(g:HM'_]8
|
||||
kBHR[q6hB8e8Xo^SsX0\'o+sSgd<1Ji9)6kHY2>+m,>+_eOOBaI0?K3oF]!7O79WPO7:DfO*"Qp=!(j(
|
||||
66BVH6Q`T4LH]2B_$g7Tdi$=\^W.F^N.+PYljn*k@DDSps#Hu5s-2sMhWYGiFjm0E_]eP$KD:!J1b6Jf
|
||||
3eauJ2KN5NjGRlOW;f8t*%!3(56am`a%1nC;&^FRSRd!)$5'[He^'_M?cg2]6M,),2.5o&jI[2fe(d#]
|
||||
k*=<^5;(g#Zdir9TDFFFOj[Ohi"sgWZa+RTlpB%!(4*I6EP#k+C$+3k%]l)!JXO,Dq9AboWS29k@b4OY
|
||||
hT?_R@&l,Z@6)3eKufkM.mHGbGcUH1WOuTlC9&ms2&CPVc2q*Sq7-%Y-P,512BKaXGD$7lR6ErDcI'UT
|
||||
pqGu0BJ.h;ZSgbPosn`$218[:V<3?m22h,JlggIZBf:s-r^>IUbaVD[R^51AX?#>l5Im]Ni0MGS:AYt?
|
||||
mKn9OVe$M\Ik42E#jtj6eK1j&2*p$(."puJ8iX=.J(pN@g7+'dii>lCa^1dt$AI<HVtE9aVr7mT6oK%5
|
||||
=E>c=hb(C,"P9_8T_u%VODR.tRKI$C#d$*WDD)hbCX.BCG*Ta"X=erZX?$!Qhg'&/KZ#Dts#F6fp2Kqm
|
||||
_75R#:=5V\Pt;Htbo$l#ag%p-qk[G:bc9OOR^92d29-c74+klTIJ4V/=EA`$LG`.4Y/78#8%2PeH7l<[
|
||||
r\?<7S!hWE0lP[T.m2X2CX1::FbF>NnX&k@kh4j;bE:]BZ&:C/(%/6H>:2duEMBVi]YcOlo1OFq%N*jh
|
||||
(?5,js66;,^=[JMfR;BWGi.@Rb]mN#/#DU/U=di5/uZnK@(W*$Q2k:0ZH-%HpiCG)8%-WOiPLbOb)4`7
|
||||
2N:kSg\#R1AL1-.\HFf4]!X#"!@R6T,dgQSaapH_pS.UdPo3\K^Q>574$E5;0M6'N9gf;nX!Y/m:`*'_
|
||||
[MG2@=hVZY]*+nh[:P!dc:_Dj/4N#4c=Nu?RdE@794e0f=3eDE461)^(N]2KTkgr0o<G>H'>gJ$S+!D#
|
||||
NJ?"o_O:3]1N7VsP1K=HhGdY@<B6,-$g`Mbb/-%#N(^bahgO.3lrB+tKBN>-d(TVTWN$AeG=HH;_C?oE
|
||||
#\QK6cFe,!B4'i4=9GfelP"Qi7Q\t[kNf?-oKQQNk@*D7k65G\J\"VMEVW$G=m1l=Zki0\f(@8MF%U-a
|
||||
NAU4*3n31)I-Pi=]NZ/W:?#ff,#>bg.8-Z3D<:Z\Bi+s.20,R0\ZO\pV8<s\mQ"2<pOd7OZ2g^\AT?f)
|
||||
WaW58q9(a/!EtO_(4<O0.1<Jlj-0^\4\f.;npdBVfkDSq<?P?'1OBl.P,@!7S>G?@WhHXuM'&WHk`]:k
|
||||
'tD43$[S)u*2QaQR+n[WqpE!lpTT/D>$ZK?UOSf>i-EoR21*lX=e-O^S?ee0o5Vp)GO9KV=k=pJq>?7.
|
||||
P]^^VZ9n?Wm`*'=YP;j;XiQ\XNN7bG!IOp%V]S)MAs1bYlfb$^25WlMND'%]>foBWND"25SZ4QRAPM2O
|
||||
0C!Cc%)$F]lMoDEK`<LpWb3>i)U&eqBD;\s'uM)opBAV/s+F4c5I#.A)b4"tRm]-&dB\J*1kn4ImSKGr
|
||||
(m/`q:8-[Ej1<+M4@MPYMJL=.V15M>Dc?uJf7BqSMBPFGUiosf6I&pr,(HfUAX<1oN2E>6G%HL8@^-M.
|
||||
9-!!F?cKQbI/So$[K8a>.mOa9icQLT:pPO\(&V5$-.jRHl+4q1(p^^)\!<*578(`^.t+6ENiZu5Gf1FL
|
||||
Uc^.t?#dZp0cl('Al,\"d4`?j"fB99JC/e_W#SC1i[pSk;Ac;V_nmUHW5t8`M[/Msct'7@q_"2P;sAuh
|
||||
MFi;1PYI<]NBidj2'6r/"mW+6&=DG.r2%s`pU8VGnLS6n""2J#AuBg;(#$fPD-l(t-nD[)s40fUhF\s1
|
||||
4KLK"5n_a2.^$ja@(=Q2hc?iR;:A2rs#n)$?f&eC3mjtU4.ZaoW#Il]jsrF3=q=g<Ni;d]<#1Vc<dH+&
|
||||
QKsP:pI0lr)LX_:Tp2/c:YX-mTqPdJ[YI%FT<4F0/"]I>eaSr?`ab0`'2d/G.$CpBAd!=ZnrKp:(S"`j
|
||||
GY"fH]4`?:B:+%:F`d-0WmU*t"5I-.g1G^BF^M&dQ8KIRX0&?#f#kQBr$C?DC`\sip`B$iR)nlmCu4_'
|
||||
CE>^31Q1PZSCuofKPX!3_<gV\ce?RoP4l@g0rF$oDP3[Q4b4I\^bsJb+ePQAPn`i6:K=?Mefm/DgmrZN
|
||||
MoCbH.Kf&gAMA$;5$Q5<BM6)u>*sUoBOQePX]<YEhING7-ZM`>:acsY=S>E-_,9Mee++Y&1Rs%O<MC1t
|
||||
Er/qLAL97bLaoEg`)nB%)lni<o+Guad7*Q.j,]+d#k>]@Ia#jHldLgYa6MX3S(h[_T?]<S?*9JMCcoXH
|
||||
g<'bXia_d0]Y`Z+.-!rAoW,88f%Q=t.4\=On(HJ*aoZ4()fn;&?:5p=:bHKA^NsU42U]$DEA^a(iG))]
|
||||
*_;Du]g#^kIA0kmSb;>)kt&M+InSB8,J/P+1[=;JCV!-%gt";7ANoA0.=$f_Nbt"C<?=r6`Op"Q=L"*L
|
||||
ju(B<oIPGJ4A$*^-!Ta`I:jsKY6^9j)"NXLMheV!9p8]8A,]$nh4C1G=7tFP&R*srBo_%gJ#tU%.3f:o
|
||||
@ombQQW2h]R6($4R*15Vq-NGgI!Sr`m(mO"*s\h*4aT@iok/&\8YendSpu;sn*oMT@_0<=fMCqgCc);7
|
||||
a7DY]s,,i`c+30kSuUrD^l\QOFB-Fq70$ZYc&3j=X\5u%q:p6FITORpaTajjNL$W>q!+FKkLq?5["os2
|
||||
3/03eLRttKo6k3<^tfOI?,E$jna<%_m#l8!AJo?.j-IjSmo'q?)GPcVV[V?[JROE@0E;gU9dZ"1bEq(d
|
||||
r%MF_+eGOcnPgLAWtN7_X][cf./2H*75YN`'^[3iph"+U[E!8apPeS#Hdl)(]pTNqE#6R4*q#oaZTKRM
|
||||
.5XQ`T)B_4\5,K(e>a#b-',lIg+RP<B_BMgr,FII/bmn3+ZWAKTKhL0QQ>7kVA8?^0AdAt1tbnT^<__L
|
||||
C0`(0YP)>]+`=ATitV40-f`b2E6MuYPPC$)>`o2pWZ4g8DDJOjIBk1HhUG79Y)JMog!Mmr44A%`Z'uAg
|
||||
C!kq'Zag8MWAh`/Cu^@O28q<91Kic[q04(J7NosHX[_i?4ks3u`!"=h*`gT&mJcOAcUBpR8Hp%-:`7t2
|
||||
<(4dK$Ca'J_!/E![']*e`N2YO8d(Mao9,O@27$nZU0;u>6qj$Ue,'eiafO2*6lN+/phVgG/npT1n$2Mj
|
||||
@O$_T*#RAjFp,d0;@aY-=iD25['$33CK3s49W&V>X#k6$s0J;.b[lo*a)]uHUhn#.OVm8fceqEgCALr8
|
||||
B=i=he[+!UP+jh'B&BoOS,1<]f8iQh:%Zo*6F+rLC-GGJ/3(UJRb!?7)=siF.N6cXgn?[/I!82,h09@+
|
||||
GEX=AoDR=(ci'lr^uF(9AB-G79X4b%EEirg,tVU5*P=3R>3GH_0q3['L*>5)Vl2kd@nuauZ.d)(s%0J.
|
||||
CCSrOV`:kja#&:&bDs+iX&^$E]7.Q*cfEM\Z@c4hgfB]Y1YK%#&ThU).W.+1G4<A3O<'?dFoXa<`E\k0
|
||||
#Bh1S@isHj%P*7Q9<);Y3*g!sN+ZT)gpM1U0paF\QQ7T'JRlk4a-$F\OZtH=<Y@!olqlK9\'?:(=20.Y
|
||||
Np*?SbjH3bm$cJiY9"q/mP.m4HVbcY2'+q*k0o)[rm(;f\Y$"YoRk.WI^dZ=gUhi4ZWc^qaie+\qOudI
|
||||
?#B2(I@BK1RV/Y"LY_nQZ5allCOS'gmkH&!9u[TXf5cPRkq:a'+,gB*0C;JUnp#V]k8+^b=J'os2JZ*8
|
||||
G;%&XmEWE#qk1X7?`\1bD#3#Ei>pD(h55[:n*]UI"88lBhn+oVGB]A_VS0URqjk*<pQ,ksFTJ@_[W^i*
|
||||
HIhiYl2S8>hqme!@:\SfSmcs^o9)K0j",o@(Wc;&nPeo26hBrcmI&dnSZ?1CmM-X)p[6nd<NUC:WcRVm
|
||||
f#maT*fn"7e]Ub%c`qZO?=BCCp1$8Y^-0ErX`_:a]B`h<UF8TqGXeZ`NRAXg\UK*HmkQ)qq;,]LB'`ek
|
||||
CUV:?"n)9@3b.U[XiK9-CjQtC`86J4=+=-Xb=rSE(-KFa.\!?8LXpt0]7FH>rTR1<[4hSBU'(oqOC7HK
|
||||
fUr2$rV:q0#ihQ0\)4t!LF3Y@YsR>\i6&o9])="i@&i:qiLVo9P[esFDgF[`@D-#lq4&K!*V1sjmlqeg
|
||||
2R5C"%<T\XJU-P%kN`f9qs83n_S=IO_2UDI7Ga#!+%`jsc%D#r_V:RJN2NP2dG^aJ=1q0spPsL@TkB2s
|
||||
B^WWG4e6h9Q8b:?h8F],Q+esWhBKlGJ.0-_Nh*h$.inET9BLjihFh/j?R<Gjg(2]Ob5s2Idsn?4-8qu$
|
||||
cGQkMn>eH?84pBJpmg5cT5g@>`>LTQd<,P\'c-<c"?8E!?5ZcDa.DQdem1^&1YH\%&hSEFK9dUo1_d!#
|
||||
fY5Ko7us8?oiT_66q,QK21b)C=eS:SI`"3k&>!(%gcY/X<fjSrl`P/'(.5I7DANimdknH*=dC9$W*8)s
|
||||
etoS0i6G2JZUdj/9t0fB2imJb6?Hmg6^B@=3],](Z,GI"PYo*dXtO_D=gtf;^Jd)gfK@e[!pAqAW+](U
|
||||
U<@&iLg'`Y,!&`k?A\,MeW4sEXgb]]YQ2D:>uXi".'UqA`2qkMjP!/sQl(]_g1[>5caA.ZaJuWI`d#kX
|
||||
08Bs0(Q[CmPCJ.9,Pa"Xp,OgC4OS`L%J+j6TGEO-qd;DI1%W'K)h.FQ,`N0LZ$aG)-^fFR[pi.&13=rf
|
||||
:[tLMNhn@gDF^2N3/?L!];VRL(uS75B[YZg7+D#(XPkElX_Quk*1:8qW*.R0%Lu*4OEdYYLVmcR]anb_
|
||||
gIh2kGF0(]Y$TZc4Q[sGe]03mmBCaGbGsc/ihfj1g%a"u\#Q_!-D>63@ug9E8:B:R[PHlrqpW80P`.h<
|
||||
lFZ7OD74aNnAiL:#Q1r>3C^Qq=)t+)h"eD,D&0m6IcoO^4s0Vei1ZTdN9T*80RFMcl',(joQTPubQhDg
|
||||
.4Cu:h*Y'ckA=Kq5a]aNrIu14KN:'IDl)*m`&dZ]`>jjCWdG\Ir`OASH/FHtdX<og"tqT%lg((PD"Z[h
|
||||
)8/R%g-9'g9K"nk*E_ROqh?1Sdbd=YQf;_khRI[RceeYMM]099.oUd@`uQe\4^,Ru=^?Nt;Xmb(-n*>`
|
||||
\lJ4\=3GHW/^-(sN0jnpU5c!n3DZV:\osZC9ce#V/!"j,/KgKlgt!8389'J85Bof&U/CHF>".c:.?9pr
|
||||
>R[3%9m2Ak+JL&CGY2h!YBWYsDBuBY#enJ\W_oh))C:<>e>YUh4JaZ%61GXhCj2K1aE^B`U/0qq[:u3R
|
||||
\BWq\PslmfCFENOns%:NLt4#G;etW5Fa6SrU*8\KF_Z>qV`5H)5_NVRY#0Isg>sd61^Ik+bq*)CBmdt]
|
||||
*CkPKPjKBn,\ThSQbZ%rc1P-X@X2\VR^:'+F1pqJ2M*\!@;.]M0uYl^ibr`@)=H-g[f,2)^,!>;XeaVr
|
||||
][\:o'&M)X26p!W#M2]_OrHkSB>Er.0r`k[nf?YuGjCTAK4`i$,e<LY70GSGle-!"g+>+3n8+@PZdpUP
|
||||
8@f2*WP9F+mLlMI\/&p^<?^>H>Pr=rC=-<GZT6H>2p^(AZ4(X:Sp`8WDZ/H2*Hl!iOr:ju`K=:+%m2]_
|
||||
>;KIM^!5_A2pP+a,eLT7C[X+9e2*F9btH<j[>'.B3%q/dVJPj5euGMnk/F-3j)<Ds_HuG[qdq*nEp'nk
|
||||
FfiJuFWX6RHFXe@I]LUCd5kQ/#J]YmO/SCNet;^h:<75?>=VG*(R&aKkXk]\%uo09D.b2`o@lIJo>ORL
|
||||
P'd"AheiV(F_f:AD[/'d0#,BID@(bRP'E2cXX!#<,=st9rn:'gGi68ehtAKK(J!ki%lh>k]^O6P7g^3Y
|
||||
^7/I(D.hMdjgTYRIlY8d/?[Z#CDBA,/*-Z5eT?4IE1Zgce1]_TrS+p`Yhol^ZXj:)`[<k8'E/8BS$5-W
|
||||
(&RTPWo*/=n([=-bpJ'`O@I4S$BB0D^X'5:MX)d1o%)e1lrJUej7t[bJ&1uQDW)p<]fe%X0E*lUfP81:
|
||||
<-%*RCPj#u;3*RK[B/H82>q'LFbbK!Fc`^ukGaF2"DS^I9eXbskS+aT431mVOCiPGmjW8CUV_65Y5!nG
|
||||
et#uq)0)&BS;8mn]JVeqajoRSD^Df;4Da%k=*+"/0;BgQZF)285hE%4]PU(<3I\'JcMVgdK],%9P88$;
|
||||
0Ddj1rWYeR52P5IiG\LK/QVm1qRb\C^O7ecIsb1p_`-r3Y]\3d;8XG9K@P;:WA??.#+TIfBBqIul1FFU
|
||||
S]pG7r]Q1F8\3+$:5j;BkFNaD[cM//kaej1eo`"'[mkHgrI*8s/PX%NSPs,d5@u0[Z2<49@BEPQg@e8<
|
||||
\a+ES-8es`1:$a"%_O[h%'3:poBu%gpWh`HeuJ0aq,t%5c0Ig?rN*k=fC81084b*WD-`d2W*].j#T)<u
|
||||
^9b!DZb"=c+hRJ1=sL5D=LP`dEc9T$QVXjN_"`r)cYR4'XCaBDM77@?[rY)RCrssij(g+'`A:"mnW./_
|
||||
.`ji7L9p=:eerj4aAJ,l:.QTVJ$`6_'>uc<,;*-(a3&DB)04^/NLtbX%:7kQ]mkV+]KC3q]*diGEL+Qa
|
||||
8l&'-@QV[XAk6RQ:2n%WS!B\'5[*4H7cIUpdOpu31ZZMZn$V@W$Ym%2(&:GloLLVCR`4N%8Qn6q1(),^
|
||||
7op)ga2OAPEoad,BfXllY^+-DA!3QtA6<NEjhZ0g\OVobB+Fk"GbX![fe)&;6HjClZoK\76T<ofi[Ho%
|
||||
p#iT/7Rt'\R?.:`YtNm0PTsI)7D,)r\;4W/D>6;H-PX2.fJuE0k%M+KY"MX-<_9mr\[mQNpD&gC9MP=0
|
||||
Wr8Z>I?92i>-$j"F&A_S(Q/MC_(4)FWP=aUjD)SQoZj^E>f>"Fd"^crHGMT//p>4CFtk<l5PB=NibI&5
|
||||
h5LfD.hRJ<Vi>=[!pK&ZbaXnUMco5)4M8p#Zk2o@\(bX6XkPL5BI33]2O?7!cWXk)GsU2Wh<Oe+>l1X3
|
||||
2Ye/qcno*?E>6..8*a!la_kpU'h(!IVij[r?YU+/WdMC2%'mLc+8"+Em#0FO04d?3p>%-BME@\OPWXqQ
|
||||
L95>6c?WD!?rk<YUEV>u7<;9P^DWPU<(2N=JW+6.q*\`FZ\GsgWLAmLB=h"5B:[rG]j((h\dNLFn$g'_
|
||||
>$V1g.;F(nRZ6R\,i3CjFX)3:b:g*a9$H!rXt,p,e>]Z!71MD=Wd;LVF`c6#/E8m8V8/rYn[C"cTYGdK
|
||||
DbK:`nl>DsX^sr`K[h%j=''G?i8mtD\Y>rsH;XS$?<-NO`kABXqMp_d5:uV9r!LnXNE2jJ3m-kZ(![>n
|
||||
\EO?-Z"Eu!s,'P>2?,<)H[4Uq^3_cp=)?cPk?i2Mb*WL:ZNSc5\,BOmjW'<A"!.3j3c.pA\""Q4lI]-f
|
||||
^U9Wigg_8/s'-LgDWN,p<-ab.T'#W]rC-H>:](;Jc[T3Cr2o!>bB>T9I%Is9hif]l1!:jl2@3^0+f_a:
|
||||
cq;&%a^]PQc)M:i'lRd>f#^(XF$B+"hUp)n44Y'`fbLYsoc$-X*ln(Kj5&kQB?bCSZ<JU5=7!Q5&!p64
|
||||
8<:Ybm-DArO85r6VeFl:/O`ECC%;q*as2t3`M]-]aQsg-A4VK?HBq[qiD?=gO`CeIT[?lPhC4ctn-<9:
|
||||
V3Al'C!rn`Uhh'WBU#r8o+6$3pd#A,)*"a"i&O,1G/XdB^?DjCn(X0"odLt073<s7d,X8%Zgd41hN,A:
|
||||
,78nPkEB-DiLKQq,%\.(ZYI(AdtZhSKi-[(nVWkq7[*6gg)*OVY#^$om67G-0mp1/Fh6C'g6e$65oV=p
|
||||
-LgA"FJ@0;d%q2h7N4u*g.!#[j)`oko;OC%n^JjSGIq"bJQimC2]>C1?*n&3&?G'jdY@e@B`g:T?<q:o
|
||||
=N+<jFNLA(gX,e$X*df7)igFH$la&BnaIh!Lk7Oh53'(0cOtP_kgIJcs'GB5eTA\a0@T^od81?q3rXX7
|
||||
;:0^[6s4[\o?n:`ogemLZmTY0pV"k)^S>]&i98LoP[;)hmJ6:4>)+RG%4JFC*E@Yf#K*eTH'F+%]Z9V*
|
||||
6gs3kWghqKQ01#P;^Z$Cl7Ui&euTg[W%qFS,m%O8Pp+=^%Eu/XWbM_uAbE"cQDc'4!+n*kUqdd]GT.OL
|
||||
Mu>fb)T&i)mtfPtWb!^m=*8Ni2"Y,1Sq2DF[-Bim`5:#T=F*fiEaDk*l[sV;j7.t'SN--X%J6pZb\[!8
|
||||
oA-gTcjs)Ko2a\:R(?n^euHW4"V(#qRm!J;`:Kq"-N%k'<Z$p9(J%+fOB1g(WE'!QlJ$T"iD!YXbNF*A
|
||||
je^WLarNFR&SO?&A_-;GMX>]9SfImh2[J;J2#<O[R#tX.X)?[bT25bIMdP62`UZ"S]F-pC`oAULCP4bd
|
||||
7n:es79sG9BEKp9bhs)met!jRLZF2qphjIIn[,o`lqhc'H8nRDWt.Y"AYBc_ph6]XkSW<,2A/5U3cR'F
|
||||
pL[O&?dW2F@F&lF_;Acf(f(X#Wd(LhTEQdVGR2UCLmC8@FMDprfL6Iq6?!]PVU>C^=!r!j_[eYfVm*3D
|
||||
AKoEJkZJNPir1NgiG95sg^aQXjl5L[a)79OdHMI`r"RSej,Vr?Atu\m)0a1?J%,BrlocIj*#:SR=%78<
|
||||
<c>qh?#S^Z?!2`o^/G8@\OnF/*N1Ft4YR6ro"CLRX<+X\I?>n4rLJs50$_&9)UE'6j;>R"Hf:<Na3EQK
|
||||
oZE*ma(OO#)4_AZ)g^\o>\lq!r(bGEQ"5l&J^ET*3l?3gWn(fjkhk4nbl-0S)t`8:/f3IkS]M"he>GZ[
|
||||
d7Q$GLu*R-TrP,*NQ9H@%:hOQn%2bH;N00VN!!SN?'i/)L+Kqi0[i;_'li%jM2HHi1\A3F`f&8N9<&jf
|
||||
LPBUTqeaTlP;t-h])?tZ!]"r(bmI)PIl^ma3O5S0fO(]cnY^"*ZfW14DX@ljn7t+n"?hCDRDin@H=h<s
|
||||
MLTb/m]Z#-B+0J1F;Laidt>$+nKO-eGl[lAgWA#V%#R-":J3Wn(WMZCEagiK3+LenC#>QT&sG5M/T"Sp
|
||||
Uo8"]&h71^?ue#M`&M\9D>'"ipjkM5cB/$G9Qs`9kl9kM[BL>risO+urVQ[DV5jCB%G`*L&WN&1#E,IN
|
||||
?aHosCq(*heWLocs$/ePG78A%2)R[HLMTqhE`#TiG'd4bcS,iJD.V1U"#UX)IF+l=N"eZ>J;u+uS%(pV
|
||||
#jHWHDDfNuDaFF\l`_BeYjoTObZc04?G,?]2o$$=s$/P:NE4Q1A(A.OHJt+mPL\K2-RMT9-Z@5o/7l<E
|
||||
7#fAf7s2a<j2P^JY"HJ]Sr%h("dJTlmlaWk1%T^IWgUXsM^ZiTQ6Z%,QQ<2a;pc$UPF%;CX\]\bjQW@E
|
||||
<puTE26l)uB756g&'$Y,A)ZCpG[K7GQk4gNX!=]XRq"F4f#/N,prh:Xi6/(D\TI.IJmMq(f,p)T;+d's
|
||||
J%fB=SnGLAR\JRr(r!c#78Wr6&bj`oZOR8,3#,]Q]6O8nf\Oor3bf1W!"r&c2bS1D!M_dBjp."lDmAnM
|
||||
79D7f,S\eQ]Q(%XJigkbOqT("*:^@*)cm4$_>KM7F*3*QF0oooQ)F%$lf`9=?GXZbK-eO_/<WKqK6:K\
|
||||
)n=+<3TfPsY)ZZ>6T<BOPGD+-G+C[hJ(m?bgm.9%#ITTSkU8B2l@bW$W0!S?$KmbgqmB5F.LNm"Ldo>i
|
||||
]]$_*R*4.G+@ieNgeC;n^QP+PRffiHk'Z3D&U;<UfRk/qi.+!)khX9s=D(EJ=Z%?k)iepN.3J1ddg-cM
|
||||
>gGIpL:Ti/P)$'dWX:9#+l:Wn3l7T/_L2Xkmk.-?i=.-4,TJ5a-*IC?fg[!B=^7;JnWsQ3"ADAB%Qb@`
|
||||
Fqt0:3:ije!-^`fB"4ZUB@7>RT\SD\MTBXNaHc#@J&<VN=6'St7KWOQ5LS0iR4mF8]5]4L)J,%HGJl](
|
||||
.Ud87BMb7Lj5/cNGY'+3J@P$C(r:p,E7_pCPpcVT[Y/V.,VP2<JP,Gl5i@'"C!k[U3!ee][]OW&JP)l>
|
||||
^X)n2$*j@+@Y>k=jg*%279OAr&Z7'bm!5pPfeTH$bW)Xk0D_'D(I]#('0:2K`:2kJs8M&^J)?^r7q'`q
|
||||
Rpl*Nc%mb&>N'mbGr+Frem9@]]G^5Lo2`dck08^+\2U0HFIh;,6]pX$\sD<1Y%<(h4iIn@6C77%`0e\_
|
||||
427t36J&MU6C78H\uoW%GgWoMRr':WDHXp'+]7$M#ErUQ72C>6`oHPp4[\[ss2jZ:Z?e;hM,721oe:V.
|
||||
P9ON#+re2]m3hK_'2U$*'06P3M.6pgNm$LQc8Is?*#MJ@%Kf]!8a8ZTm=$JQKmboh"&Y+51H4Wa(fIL^
|
||||
lI1)1D&<*_Y+j0^'\)#3HBp`\<!DR0Q,J)$Ll@mU)N"e"[#@90\ind^GDeZT&U5-Se>l;V-t['>@h\`D
|
||||
8:@"h<n:BM#;Z>O[/s!aoX>+.JM!gF/(tVj56;X%([(QPa2g!_:Lm!PM49(/'t4;#?Tu6"0/N618DJSR
|
||||
Aka\n0lB%K^LDOrnN/ilLc602?SLMY5I'W&&[n/u(gfCnBnm(^[TC[:-ILM&N8EC74+u,$fjs]578uX[
|
||||
=<L)<i_4uE6TbB9<@m;,#pENWfX$bl>Bmmh*UW>4>@&TK$FSW\aou$TXj,TcGS4Ya[>[I?T)3dK'gD+i
|
||||
/Xd!'^T^2bU7M%P&7s2EbihRK\R&_Z*W4),q<1,H35IKUBB$@47JFE.V@%#]2r2=PME'prXJJ>239$MA
|
||||
HD%oAbTi.d&oRh2BN;h'"ZL`II5L1@PbX8s"KH%ZhDFlm@lLKf*o:IWBuBEo\n33eq1eDDS\WtNM79Si
|
||||
7Po2Vbeup7loO;CI_;l#s7Hh.lMZ)/Gi"KfX?N<56*kh>'+t^2_&%q&P7id4'ejXp6S]3Qg8jelM`>08
|
||||
nrm:F/T\Zph<("?mLJC4=VDto"n6Z*L-gK7V*6iIFMg^.lgui;XAfr3c`2tJXOJ^Ma`RRSc,5B]]s`K#
|
||||
ek%M*%(@i1CJECBf&`r"\n#A8X[>g`-f'ae-*6RW<p2;XPbdCHf%DAX(IlJaf<'A1f\PFX.>>QA]:j1/
|
||||
3BCDA(,&>-$_@:&<g_h_&#.cus+^&+lY\]-\<N#?VlEfp1/[L-<dLKA%OZnbmKnP8Gt_.?*fDpqag0nA
|
||||
/S'+&FJg68:53jP+lk2U>2<YmGr#Wba07X^b"l4b'Y]/hfoTG1^]!*P?Q6$F0se[)L#G/Vbr`"p;SV0:
|
||||
'E/*b+YG^*'r@s0(A7=<`G-)-L5nZQf5j>1c?r_9ISO&jh5[uk^'do(9fmjBPbT/tG!:"b6bEGZmkpV<
|
||||
2'9StKpF5@\i)uGoV"&q=B40s^k14YiLZ4f\Ga=+K)b&n=(.(Ah+MH`aCs-@V1rL),OO]>!p[DaBY0a&
|
||||
(Gs>N^IRZsh&L!EK8V!/?E.3RTjKcODmK0Jj3!BU)t(oe#T;D<,GL2o`"=TXVkR33<t5"(FS,e5HUMC_
|
||||
-A*eMXD@2@5*Vo@3Dc&r<*:*EE7QXR$ZT860pb<Ff(`Jo0LPT]$sLMNH[BgH^e:=^[VD`-gTr:FUh_C+
|
||||
[cb!4i,Rs!gj#K\RD9jU\BMRQ7[%/5gHiUrU]p639r#_&bE%6UGs^>][;\K/Zb!/>UO-Zj_Dm=ESIFfi
|
||||
Ku:[`LW*c<J2]lY9dn9jg[(l]SMR6,%!_Y>k&fLal&&-ON1.^=(RIV4r#cnt'<g0_RM=Rh905.4p_i(I
|
||||
f*GW=q`Sn^S$+r[hQ6^lju#X[#>Bu5\kt%s'u@Tns!5bMMpiOqa@c-V_'9q=1\_rFqdW7%B'JWIO^6V.
|
||||
[&5s+WZ7jG(+o(8jj;e%6q?)rB@0eh38[aY)GcsM:Bhi\]M!BI=N[*?S=t.c%Dt+%EH.GYks?4^BEWNs
|
||||
Ibn.E)12,.",@7X><(*TUX=5@T\55l)A#]si`2:cPtMfjK/E9:'MA])PC>HENjg'PJbR!DIo_s,Q1$$.
|
||||
622Oo>p+E!-^/Z4>BaUfjg2aqW6TH%_r>F@Y,Fo-2'VmuL!FU6I5*lgl-)HpY6?apd5i(,$g/;(K%5/:
|
||||
0&=*rWQ#N52(DK8qQM%5L%2SDBMI_hjpTu`,nFus\>MLm_kia-\j_k4'kO`4m1@8P%%S<S-sY*?F69fo
|
||||
SC4;tIYk2rAOFDQmKg2*q/2".>@8Uc9_K-;FVY+A:F4bBa,#(pbEO/Q."'DeNG$?l])5^>DL(1JSP64s
|
||||
Vrnt,`7a;`-c&c-I4h#%T@g3#S=o`uH^0a"$1V/6aI!0XPTVQ>DJ:NRXc/!/&tS^7Yu^jY6gq8B^LH7Y
|
||||
g'KW:9M5&)nU2I-g[Pa1n*0YOR.iDe#DRjEVqO7H2Yi;.Ng6d>7M&4pO&dZG5b/CS,h]'FEU9t3^KmRT
|
||||
SlU_tD"_5eL3;Ds+s3^NbYCo^8qak,*;b7Ts.?o6^U;7=&UZTbS.ZueZeeV)?=B)sPR&`5C\T?@,M+@R
|
||||
gF3_`akLBL8i3N:h,>M^+5)*8<&\)9Fq.J1:!u!I6;D`1Na"C_``"(7L?`(eSJ!+/FB1UP@P+JBVaQ:!
|
||||
PR(Bh7^`BaNTWP;9P98YM0KV3p2cm];!<'uM3((e![GUm2a8VZ[<e>U+_YHB;^,JE5Rkq4M%&-A&&uBD
|
||||
PR,krd+#=!,$\_K@n3ZLMYr_&jZDp\hr?cb:A/DL@DZSlbITuNI5'W^31k\Y?\#cR(G)q_>IO;]Iq-E`
|
||||
]scC=DTX:Y_t%!Bl;^7-3F[+EEL0_&l8#C/G<MUTnUtCmR%G+M+i6nf3+@%I0D=:W`2ankh9:ML1$WU)
|
||||
1odW.(T4/<#V"1D0nS7cQst)4;G\Rm,<K*F5D"CX?42F?)eNa/?m//:=i30T*lq4^WOcobdP1<!GZZA0
|
||||
-F,=M7"VT/\NMLo#"SIT2HHc%CFLZ4FY+EQXYH&=a=?k!#!T3SM,lSE7R=]d7)bcE[R-"c4_6(tSVlc0
|
||||
\2K)n4@3jFNpmdlMcj456#7Dt6CMi,WHnUZ<c2'O#n&3b(!fGpm[hV>#e6TAK#Q(9,NKMXUdCNJQ#<Xs
|
||||
_r6QZA1,(BlM]of$VOk[Wp%%*VlUF=Mi,4#&mUaL&>a@eXaW(4;[2F>6>)'chnk`5LT-d^:[hKq#5a3]
|
||||
Uh-M?R\6K-D@1:e"\k4lo/)-*A>P-;[J1Pp"roEc#fq1L-(?'$H5EXI<iYVJV7eT)47]phPm+MifObRS
|
||||
eK;ZNDn@!Gor>NS<AhjhPthj4X5$`e$ZDkSQ/T?gHi9Y>euW%DanBCt,0NY7S<WW_0HJG4M6F#J3Bp1s
|
||||
kH([M;UmBnb/kf$Dp)!,b0aL<6V644339no/#'V_9;1$MM<=1h*IJZen#a_Q6<VO.Z&=42=.AJE@JZ#P
|
||||
OBH&a7<oh&C,%`F2X>E'[rjKggO<:N;mO)<R6s@!c,qeFeS-n&h4in2a#>)9]S>=Bb15314Wd2X?26MX
|
||||
fo"/X/YXtISb;=`bq,G1e/T0&q/kIZ6+V(.dT7/jFSa_ha!pUO[nb%I]q$aEpTCrF5mkd_'8m+%rgmO@
|
||||
9\Qd'8`dPPU_m[GfH=cuNiEBC-u<4S[AP(5/&iMl.=Li))c,._8:U!eU&Cf"-L9'$oH*u(<njOpMLHGT
|
||||
Hq?\Hl&rS,6dbZ/e8)/fr@?$(g=`ti@Y;'1PHqZPAqj<g%)H]XWE_&bV%QbYY-A(:^3:.Qc?0s_RJa^t
|
||||
H5'l2,ZF!TIWC9dPbEBa&_(CjP!+uL?-W)!@p["FiA[o;i[e*Fl60(UleYp(;d$Xb>'[8<)3^;uV9pj?
|
||||
mD<IB<`r)),:j$@#?m!(%*\%"q9'tBVV>7O<\$ZT2!quU*[]p3\hDWY@^:8^rO/`SoO_EKWBg\g?-R?9
|
||||
M$'>-4c)&;VYIPr`04M,T1d>WAuX)%MmJt:TU=%&N`XgMM*JbbbR_ooBB=/2c`p*mNplk"cdF<r3lUoS
|
||||
)C`a91Zn<#M02lMC1'bF0UX7;fh)BiA5W:9]KEMOm9edfF4lh^oaN^dmt"JfgMXCP\mFEnhsX?8\gFUT
|
||||
-;E3uC!o7\\gC^Ho6nYb\!rd4NV:k-P6NM[2/,FO8Ok;aFB)@sC!q70l?PsbY#agl\h[+,(U^:a)t$S-
|
||||
#09\[;<]YibKlM%>uQ_na\64oeHcUZ9_AZc\u&q>Mpg^;gMfk*-r&<hC\#,:C!p"$etstLA/@rCWr=Q6
|
||||
!0l@hTh-IGIYK2o+RFk1]d*3MWRVXVaetKk+O[(!<LWPd>%LFS[[V=>ZRk=jV"[n%"u1$L-6c/fk\AP,
|
||||
_B\ct)Og<T?BJ0ToJTEC\hXn2L*Oo8$*-A%Vk5^@qM@%C+D!<$PK&!:jI.oe--W*D>fs2o;3T#Bj`36C
|
||||
ROmo3Oj?VLm%d4*-E>D@0`&no4+k+H#;jeLXa>o%>B`e&Fp^*@+KI\0I;aAYq-uoYpZk21k2)M-PNFLB
|
||||
Y"@Z!Y/&Pn;qWCm8Ok:R>^gn,-=%AC&=R]@oXa;0(_83q5\:B@eho83UcC70I\g56TiFBYBS:*J<Ojc[
|
||||
8K/"2g@3/%QAH=.b-S&/Gfm2Jp?F%_l"F'kc'4LcV^fU*!6A6*-AD,n8QY"nR3iBmQ>=p'6BdF1C=<#k
|
||||
F%r+l*ESFOjY#/UCGP^%aKhQBG@bt\nD:<>=69FK-=&bJa>E-O.n:Ch$t&2EUe)<gC=8=Q__l/++DK8j
|
||||
^8g]lUG$B16((N[I;%%G617m=`bI$\?CE^T]M$[H%@\\=m[d^JXpQ3W9tDg$a`M)dNHA#V46,<Y?'DF7
|
||||
/VQ%GLMWFEK.c>N-I"7sf;&khhu6f[m8GHc04TKFdT81sPBK,49q$-k>a&bQ]On;58*hGab#N_KJYF'5
|
||||
@9k?.9tDf]d5>VQn%Y;J,fL6fg16(TdNNU(PP/$kdT]d:RHD/Kf8_`$Ff1sLdT]dLRO2l,`AHh@32T8o
|
||||
X#0(CbP+\ohV2gN:m:&09<L?tcTdNI1_Q0I;Pm#eKfb\Lc1uL!^=qEoY";R$Bs(#H$;EQbQZRk_.N:YW
|
||||
G2d=_==#A0dbKc(2<gci-bXc$gKOR?c\jelWjH/@"$P(Pbn4FI)Je]$/!J7_djX"C<hY"X4D,?XAEnQc
|
||||
;)2AC@OTqYUMXcUICMk<h^1?eF8Z?NMB'?!3e9\6<LUsKh,u\QH#&PE/1m]0V\uV6@hr^D<DZ,d:j#s,
|
||||
m3>eO\oBe[)-N.$[W^9>TQMDfdW@84-Bqim[hn1dU+a:n-,I$&9d2;]?1gglpmX$!JJ8EOPbH=sAq.Gb
|
||||
g7jJ;bRpXWd]C2gkGha]0V0V*$p&=<E?OL<\5n4\VY,e/+_YDrUtC/]:WjrCmtlYTD,i25rqW-.=Q-tR
|
||||
61?i.#sroSJ&FS/>+>60:0)/Z^KM*0f65.u:WDhb=_,G3ad]bj&YM'c)&N;qr+rZ<Q6F0i.?Dn]WH[r.
|
||||
pg[b;m4>QJJJ%E.Q!QX41C_YPk=($75%:2oj,BT@iDaa"[MjXYM%k;!)5iDYG&Vsj3B]VeQCgUl%dETK
|
||||
.*cA:Pr^LHR>>g*O77#"<tU7@f;W2EZ?h2>%S'`'mte<)_:s2]mk&h$Lr`M/;tMPRAr7qak*t-5Gbs0K
|
||||
=9rrqSr0quDg%kp06M`#e_dZM0Jr]I0c;5J-_Fs>n5>e4$#(`+!q37k$K/[HIRdaG5/8_,i,h)MDWF,1
|
||||
<h-UI`HkjU;d#=K^;4dd@T!#P?s`eL(hi5^Fg+n[f@L`2[9._bGcK%;f=&#DMt-nI/)#HP<@%omIpQ/A
|
||||
O?cH>BjdrWr+.3H@U%eNU]7]8HtR$BV.jOR(onh4BK<N`M"A0AUHEgVAiDt4a*,?u[,]u0"C2q8Fm-\2
|
||||
au4Q6_G97g`oo@FfGuQs=Fi=9p.L(rDnT5nhV6`LU#]OjpGe5%iu=H;Wm!COSA:ZFMPD48CurW&CkgeV
|
||||
m)/D=Iq&ZcG0F@Hn)k?3AJAf9IY"uc5II"?j_jVaI5tn6djE@?)'Z_oF"ZQ1Cs?To('-9Ehmf0K)nA<d
|
||||
_hi6$MXi)rh]Q+3\/m<a@An4tr`+@&(6?[EREbVcIH*=[pK>BLoXr*\RAE7/cI":len,$-\$pE+]*G?o
|
||||
)AGuW=V)/:^t`4SNr,CqBG``YJ<s(7JT7\PN[hqY@ET#2ii]=F;/JLp>4]#sp+!4ieQ4MMlVO3ueET,D
|
||||
Z[cIr!5J@p*(?FMB\cq(+l>XZU<2Ql/L@=BY+1GF!Ah<#@Z-hs=BJ54OliX=gIg:e*(BOA]?u)9rfd)]
|
||||
)@K'1Y:p42d*OAY&):-2[g5]*=qfW?Sn7r"qQ#e%9NBNR84kB+Ec:VpH)4rs&,(G2b`G.jTIqPX5J-@s
|
||||
q$9Ra`-SXELa\#$'3VJl@6*.Ansu$;?5*^;`G/<>*B^REI/AqOmalZpZYD_cK4C5QbV.(64FFPVi0/C:
|
||||
@.F>35NDq7IPTT.K9sMKJgMRYmo+MQ#MoQj>Wsj*,32+aj^(Tt3ZLf$^K$IPZ(>dQ#CNp1QOi:gaZ`mg
|
||||
/]OsH+A%?9?uF+S4ts#bg@;T`nc<+?&,F#1YH#d$(d6tJ+Hm=e.3JJSOq2s/6U'G//*$g(MF'K@\Of+O
|
||||
E4).XLE_B,,QR9B$[M4_A&%TNnm*kb(_0`rFdq9nh[>&*qt4c,RIlE,kehF0=G/fNVr-6Fn+PlA:OKR@
|
||||
0@n!I]t")X!W?C)nbr&ArZD/:;>rfNXk,c?DMX#-*T`P&7sr;L(rlDZJ,GAVj1kTghn[Tm1&~>
|
||||
endstream
|
||||
endobj
|
||||
7 0 obj
|
||||
29153
|
||||
endobj
|
||||
3 0 obj
|
||||
<<
|
||||
/Parent null
|
||||
/Type /Pages
|
||||
/MediaBox [0.0000 0.0000 431.00 434.00]
|
||||
/Resources 8 0 R
|
||||
/Kids [5 0 R]
|
||||
/Count 1
|
||||
>>
|
||||
endobj
|
||||
9 0 obj
|
||||
[/PDF /Text /ImageC]
|
||||
endobj
|
||||
10 0 obj
|
||||
<<
|
||||
/S /Transparency
|
||||
/CS /DeviceRGB
|
||||
/I true
|
||||
/K false
|
||||
>>
|
||||
endobj
|
||||
11 0 obj
|
||||
<<
|
||||
/Alpha1
|
||||
<<
|
||||
/ca 1.0000
|
||||
/CA 1.0000
|
||||
/BM /Normal
|
||||
/AIS false
|
||||
>>
|
||||
>>
|
||||
endobj
|
||||
8 0 obj
|
||||
<<
|
||||
/ProcSet 9 0 R
|
||||
/ExtGState 11 0 R
|
||||
>>
|
||||
endobj
|
||||
xref
|
||||
0 12
|
||||
0000000000 65535 f
|
||||
0000000015 00000 n
|
||||
0000000315 00000 n
|
||||
0000029896 00000 n
|
||||
0000000445 00000 n
|
||||
0000000521 00000 n
|
||||
0000000609 00000 n
|
||||
0000029872 00000 n
|
||||
0000030350 00000 n
|
||||
0000030066 00000 n
|
||||
0000030105 00000 n
|
||||
0000030207 00000 n
|
||||
trailer
|
||||
<<
|
||||
/Size 12
|
||||
/Root 2 0 R
|
||||
/Info 1 0 R
|
||||
>>
|
||||
startxref
|
||||
30423
|
||||
%%EOF
|
|
@ -6,7 +6,9 @@ Windows
|
|||
|
||||
Der Installer der AusweisApp2 kann über die Kommandozeile gestartet werden, um
|
||||
den Installationsprozess zu konfigurieren und systemweite Standardeinstellungen
|
||||
vorzugeben. Neben den üblichen Parametern [1]_ enthält das folgende Kommando
|
||||
vorzugeben.
|
||||
Der Rückgabewert von msiexec informiert über das Ergebnis der Installation [#msiexecreturnvalues]_.
|
||||
Neben den üblichen Parametern [#standardarguments]_ enthält das folgende Kommando
|
||||
alle unterstützten Parameter, die im Anschluss erläutert werden.
|
||||
|
||||
.. code-block:: winbatch
|
||||
|
@ -15,7 +17,7 @@ alle unterstützten Parameter, die im Anschluss erläutert werden.
|
|||
|
||||
INSTALL_ROOT
|
||||
Gibt das Installationsverzeichnis an. Ohne Angabe wird der Ordner
|
||||
"C:\\Programme (x86)\\AusweisApp2 X.YY.Z" genutzt.
|
||||
"C:\\Programme (x86)\\AusweisApp2" genutzt.
|
||||
|
||||
SYSTEMSETTINGS
|
||||
Betrifft die Erstellung von Firewall-Regeln der Windows Firewall. Ohne Angabe
|
||||
|
@ -69,7 +71,9 @@ UPDATECHECK
|
|||
false oder true kann diese Überprüfung deaktiviert bzw. aktiviert werden.
|
||||
Die Einstellung kann dann durch den Benutzer in der AusweisApp2 nicht geändert
|
||||
werden. Ohne Angabe ist die Überprüfung aktiviert, der Benutzer kann die
|
||||
Einstellung jedoch ändern.
|
||||
Einstellung jedoch ändern. Der UPDATECHECK Parameter beeinflusst weder die
|
||||
Aktualisierung der Diensteanbieterliste noch die Aktualisierung der
|
||||
Kartenleserinformationen.
|
||||
|
||||
ONSCREENKEYBOARD
|
||||
Für die Eingabe von PIN, CAN und PUK kann eine Bildschirmtastatur verwendet
|
||||
|
@ -83,7 +87,7 @@ HISTORY
|
|||
von HISTORY auf false oder true kann der Verlauf deaktiviert bzw. aktiviert
|
||||
werden. Der Benutzer kann diese Einstellung anpassen.
|
||||
|
||||
Alternativ kann mit Orca [2]_ eine MST-Datei erzeugt werden, die die oben
|
||||
Alternativ kann mit Orca [#orca]_ eine MST-Datei erzeugt werden, die die oben
|
||||
genannten Parameter definiert. Die Parameter sind in den Tabellen "Directory"
|
||||
und "Property" verfügbar. Übergeben lässt sich die MST-Datei mit dem folgenden
|
||||
Kommando:
|
||||
|
@ -143,5 +147,109 @@ common.keylessPassword ONSCREENKEYBOARD
|
|||
history.enable HISTORY
|
||||
====================== ====================
|
||||
|
||||
.. [1] https://docs.microsoft.com/de-de/windows/desktop/msi/standard-installer-command-line-options
|
||||
.. [2] https://docs.microsoft.com/de-de/windows/desktop/Msi/orca-exe
|
||||
.. [#msiexecreturnvalues] https://docs.microsoft.com/de-de/windows/desktop/msi/error-codes
|
||||
.. [#standardarguments] https://docs.microsoft.com/de-de/windows/desktop/msi/standard-installer-command-line-options
|
||||
.. [#orca] https://docs.microsoft.com/de-de/windows/desktop/Msi/orca-exe
|
||||
|
||||
|
||||
|
||||
Anforderungen an die Einsatzumgebung
|
||||
------------------------------------
|
||||
|
||||
Rechte für Installation und Ausführung
|
||||
''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
Für die Installation der AusweisApp2 sind Administratorrechte erforderlich.
|
||||
|
||||
Die Ausführung der AusweisApp2 erfordert keine Administratorrechte.
|
||||
|
||||
|
||||
Verwendete Netzwerk-Ports
|
||||
'''''''''''''''''''''''''
|
||||
|
||||
In :numref:`porttable_de` werden alle von der AusweisApp2 genutzten Ports
|
||||
aufgelistet.
|
||||
Eine schematische Darstellung der einzelnen Verbindungen, die von der
|
||||
AusweisApp2 genutzt werden, ist in :numref:`communicationmodel_de` dargestellt.
|
||||
|
||||
Die AusweisApp2 startet einen HTTP-Server, der über Port 24727 erreichbar
|
||||
ist.
|
||||
Der Server empfängt nur auf der localhost Netzwerkschnittstelle.
|
||||
Die Erreichbarkeit dieses lokalen Servers ist für die Onlineausweisfunktion
|
||||
notwendig, da Diensteanbieter mit einem HTTP-Redirect auf den lokalen Server
|
||||
umleiten um den Ausweisvorgang in der AusweisApp2 fortzuführen (eID1).
|
||||
Außerdem wird über den Server die Verwendung der AusweisApp2 von anderen
|
||||
Anwendungen über eine Websocket-Schnittstelle angeboten (SDK-Funktion, eID-SDK).
|
||||
Daher müssen eingehende lokale Netzwerkverbindungen auf dem TCP Port 24727
|
||||
ermöglicht werden.
|
||||
|
||||
Für die Verwendung von der "Smartphone als Kartenleser"-Funktion über WLAN
|
||||
müssen außerdem Broadcasts auf UDP Port 24727 im lokalen Subnetz empfangen
|
||||
werden können.
|
||||
Hierzu muss eventuell die AP Isolation im Router deaktiviert werden.
|
||||
|
||||
.. _communicationmodel_de:
|
||||
.. figure:: CommunicationModel_de.pdf
|
||||
|
||||
Kommunikationsmodell der AusweisApp2
|
||||
|
||||
Der Installer der AusweisApp2 bietet die Option, für alle angebotenen
|
||||
Funktionen der AusweisApp2 die erforderlichen Firewall-Regeln in der
|
||||
Windows-Firewall zu registrieren.
|
||||
Erfolgt die Registrierung der Firewall-Regeln nicht, wird der Benutzer bei
|
||||
einem Verbindungsaufbau der AusweisApp2 mit einem Dialog der Windows-Firewall
|
||||
aufgefordert, die ausgehenden Datenverbindungen zuzulassen.
|
||||
Durch Registrierung der Firewall-Regeln während der Installation werden diese
|
||||
Aufforderungen unterbunden.
|
||||
|
||||
Für die lokalen Verbindungen eID1 und eID-SDK müssen (unter den gängigen
|
||||
Standardeinstellungen der Windows-Firewall) keine Regeln in der
|
||||
Windows-Firewall eingetragen werden.
|
||||
|
||||
Die durch den Installer angelegten Regeln werden in Tabelle :numref:`firewalltable_de`
|
||||
aufgelistet.
|
||||
|
||||
|
||||
TLS-Verbindungen
|
||||
''''''''''''''''
|
||||
|
||||
Es ist generell nicht möglich, die AusweisApp2 mit einem TLS-Termination-Proxy
|
||||
zu verwenden, da die übertragenen TLS-Zertifikate über eine Verschränkung mit
|
||||
dem Berechtigungszertifikat aus der Personalausweis-PKI validiert werden.
|
||||
CA-Zertifikate im Windows-Truststore werden daher ignoriert.
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\begin{landscape}
|
||||
|
||||
.. _porttable_de:
|
||||
.. csv-table:: Netzwerkverbindungen der AusweisApp2
|
||||
:header: "Referenz", "Protokoll", "Port", "Richtung", "Optional", "Zweck", "Anmerkungen"
|
||||
:widths: 8, 8, 8, 8, 8, 35, 25
|
||||
|
||||
"eID1", TCP, 24727, "eingehend", "Nein", "Online-Ausweisvorgang, eID-Aktivierung [#TR-03124]_", "Nur erreichbar von localhost [#TR-03124]_"
|
||||
"eID2", TCP, 443, "ausgehend", "Nein", "Online-Ausweisvorgang, Verbindung zum Dienstanbieter, TLS-1-2-Kanal [#TR-03124]_", "TLS-Zertifikate verschränkt mit Berechtigungs-Zertifikat [#TR-03124]_"
|
||||
"eID3", TCP, 443, "ausgehend", "Nein", "Online-Ausweisvorgang, Verbindung zum eID-Server, TLS-2-Kanal [#TR-03124]_", "TLS-Zertifikate verschränkt mit Berechtigungs-Zertifikat [#TR-03124]_"
|
||||
"eID-SDK", TCP, 24727, "eingehend", "Nein", "Verwendung der SDK-Schnittstelle", "Nur erreichbar von localhost [#TR-03124]_"
|
||||
"SaK1", UDP, 24727, "eingehend", "Ja", "Smartphone als Kartenleser, Erkennung [#TR-03112]_", "Broadcasts"
|
||||
"SaK2", TCP, , "ausgehend", "Ja", "Smartphone als Kartenleser, Verwendung [#TR-03112]_", "Verbindung im lokalen Subnetz"
|
||||
"Update", TCP, 443, "ausgehend", "Ja", "Updates [#govurl]_ zu Dienstanbietern und Kartenlesegeräten sowie Informationen zu neuen AusweisApp2-Versionen [#updatecheck]_ .", "Die Zertifikate der TLS-Verbindung werden mit in der AusweisApp2 mitgelieferten CA-Zertifikaten validiert. Im Betriebssystem hinterlegte CA-Zertifikate werden ignoriert."
|
||||
|
||||
.. [#TR-03124] Siehe TR-03124 des BSI
|
||||
.. [#TR-03112] Siehe TR-03112-6 des BSI
|
||||
.. [#govurl] Erreichbar unter dem URL https://appl.governikus-asp.de/ausweisapp2/
|
||||
.. [#updatecheck] Die Überprüfung auf neue AusweisApp2-Versionen kann deaktiviert werden, siehe
|
||||
Kommandozeilenparameter UPDATECHECK
|
||||
|
||||
.. _firewalltable_de:
|
||||
.. csv-table:: Firewallregeln der AusweisApp2
|
||||
:header: "Name", "Protokoll", "Port", "Richtung", "Umgesetzte Verbindung"
|
||||
:widths: 25, 15, 15, 15, 30
|
||||
:align: left
|
||||
|
||||
"AusweisApp2-Firewall-Rule", TCP, \*, "ausgehend", "eID2, eID3, SaK2, Update"
|
||||
"AusweisApp2-Firewall-Rule-SaC-In", UDP, 24727, "eingehend", "SaK1"
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\end{landscape}
|
||||
|
|
|
@ -5,9 +5,10 @@ Windows
|
|||
-------
|
||||
|
||||
Start the installer of AusweisApp2 using the command line to configure the
|
||||
installation process and preset system-wide default settings. In addition to the
|
||||
usual arguments [1]_, the following command contains all supported arguments,
|
||||
which are explained below.
|
||||
installation process and preset system-wide default settings.
|
||||
The return value of msiexec indicates the result of the installation [#msiexecreturnvalues]_.
|
||||
In addition to the usual arguments [#standardarguments]_, the following command
|
||||
contains all supported arguments, which are explained below.
|
||||
|
||||
.. code-block:: winbatch
|
||||
|
||||
|
@ -15,7 +16,7 @@ which are explained below.
|
|||
|
||||
INSTALL_ROOT
|
||||
States the installation directory. If not specified, the folder
|
||||
"C:\\Program Files (x86)\\AusweisApp2 X.YY.Z" is used.
|
||||
"C:\\Program Files (x86)\\AusweisApp2" is used.
|
||||
|
||||
SYSTEMSETTINGS
|
||||
Concerns the settings of firewall rules of the Windows Firewall. When not
|
||||
|
@ -64,6 +65,8 @@ UPDATECHECK
|
|||
UPDATECHECK to false or true deactivates or activates the update check
|
||||
respectively. Users are unable to change this setting in the AusweisApp2. Not
|
||||
specified, the update check is activated, but users can adjust the settings.
|
||||
The UPDATECHECK parameter affects neither updates of the service
|
||||
provider list nor updates of card reader information.
|
||||
|
||||
ONSCREENKEYBOARD
|
||||
An on-screen keyboard is available to enter PIN, CAN or PUK. It is deactivated or
|
||||
|
@ -76,7 +79,7 @@ HISTORY
|
|||
content). Indicating HISTORY as false or true, the history function is
|
||||
deactivated or activated. Users are able to adjust the settings.
|
||||
|
||||
Alternatively, Orca [2]_ can be used to create an MST file that defines the
|
||||
Alternatively, Orca [#orca]_ can be used to create an MST file that defines the
|
||||
above arguments. The arguments are available in the "Directory" and "Property"
|
||||
tables. The MST file can be transferred with the following command:
|
||||
|
||||
|
@ -132,5 +135,101 @@ common.keylessPassword ONSCREENKEYBOARD
|
|||
history.enable HISTORY
|
||||
====================== ====================
|
||||
|
||||
.. [1] https://docs.microsoft.com/en-us/windows/desktop/msi/standard-installer-command-line-options
|
||||
.. [2] https://docs.microsoft.com/en-us/windows/desktop/Msi/orca-exe
|
||||
.. [#msiexecreturnvalues] https://docs.microsoft.com/en-us/windows/desktop/msi/error-codes
|
||||
.. [#standardarguments] https://docs.microsoft.com/en-us/windows/desktop/msi/standard-installer-command-line-options
|
||||
.. [#orca] https://docs.microsoft.com/en-us/windows/desktop/Msi/orca-exe
|
||||
|
||||
|
||||
Operational Environment Requirements
|
||||
------------------------------------
|
||||
|
||||
Required authorization for installation and execution
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
Administrator privileges are required to install the AusweisApp2.
|
||||
|
||||
The execution of the AusweisApp2 does not require administrator privileges.
|
||||
|
||||
Used network ports
|
||||
''''''''''''''''''
|
||||
|
||||
All network ports used by the AusweisApp2 are listed in :numref:`porttable_en`.
|
||||
:numref:`communicationmodel_en` shows a schematic representation of the
|
||||
individual connections made by the AusweisApp2.
|
||||
|
||||
The AusweisApp2 starts a HTTP-Server on port 24727.
|
||||
The server binds only to the localhost network interface.
|
||||
The availability of the local server is necessary for the online eID function,
|
||||
because service providers will redirect the user with a HTTP redirect to the
|
||||
local server to continue the authentication process in the AusweisApp2 (eID1).
|
||||
The server is also used to offer other local applications to use the
|
||||
AusweisApp2 via a websocket interface (SDK function, eID-SDK).
|
||||
Therefore local incoming network connections to TCP Port 24727 must be
|
||||
permitted.
|
||||
|
||||
Broadcast on UDP port 24727 in the local subnet have to be receivable by the
|
||||
AusweisApp2 to use the "Smartphone as Card Reader" functionality.
|
||||
It may be necessary to deactive AP isolation on your router.
|
||||
|
||||
.. _communicationmodel_en:
|
||||
.. figure:: CommunicationModel_en.pdf
|
||||
|
||||
Communication model of the AusweisApp2
|
||||
|
||||
The installer of the AusweisApp2 provides an option to register all needed
|
||||
firewall rules in the Windows Firewall.
|
||||
If the rules are not registered, the user will be prompted by the Windows
|
||||
Firewall to allow the outgoing connections once the AusweisApp2 tries to
|
||||
connect to a server.
|
||||
These prompts are suppressed by registering the firewall rules during
|
||||
installation.
|
||||
No rules have to be added to the Windows Firewall for the local connections
|
||||
eID1 and eID-SDK (when using the standard settings).
|
||||
|
||||
In table :numref:`firewalltable_en` all firewall rules registered by the
|
||||
installer are listed.
|
||||
|
||||
TLS connections
|
||||
'''''''''''''''
|
||||
|
||||
Transmitted TLS certificates are solely validated via the interlacing with
|
||||
the authorization certificate issued by the german eID PKI.
|
||||
CA certificates in the Windows truststore are thus ignored.
|
||||
It is therefore generally not possible to use the AusweisApp2 behind a
|
||||
TLS termination proxy.
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\begin{landscape}
|
||||
|
||||
.. _porttable_en:
|
||||
.. csv-table:: Network connections of the AusweisApp2
|
||||
:header: "Reference", "Protocol", "Port", "Direction", "Optional", "Purpose", "Note"
|
||||
:widths: 8, 8, 8, 8, 8, 35, 25
|
||||
|
||||
"eID1", TCP, 24727, "incoming", "no", "Online eID function, eID activation [#TR-03124]_", "Only accessible from localhost [#TR-03124]_"
|
||||
"eID2", TCP, 443, "outgoing", "no", "Online eID function, connection to the service provider, TLS-1-2 channel [#TR-03124]_", "TLS certificates interlaced with authorization certificate [#TR-03124]_"
|
||||
"eID3", TCP, 443, "outgoing", "no", "Online eID function, connection to eID-Server, TLS-2 channel [#TR-03124]_", "TLS certificates interlaced with authorization certificate [#TR-03124]_"
|
||||
"eID-SDK", TCP, 24727, "incoming", "no", "Usage of the SDK functionality", "Only accessible from localhost [#TR-03124]_"
|
||||
"SaC1", UDP, 24727, "incoming", "yes", "Smartphone as Card Reader, detection [#TR-03112]_", "Broadcasts"
|
||||
"SaC2", TCP, , "outgoing", "yes", "Smartphone as Card Reader, usage [#TR-03112]_", "Connection in local subnet"
|
||||
"Update", TCP, 443, "outgoing", "yes", "Updates [#govurl]_ of service provider and card reader information as well as informations on new AusweisApp2 versions [#updatecheck]_ .", "TLS certificates will be validated against CA certificates included in the AusweisApp2. CA certificates provided by the OS are ignored."
|
||||
|
||||
.. [#TR-03124] See TR-03124 specification from the BSI
|
||||
.. [#TR-03112] See TR-03112-6 specifiaction from the BSI
|
||||
.. [#govurl] All updates are based on the URL https://appl.governikus-asp.de/ausweisapp2/
|
||||
.. [#updatecheck] Automatic checks for new AusweisApp2 versions can be deactivated, see commandline parameter
|
||||
UPDATECHECK.
|
||||
|
||||
.. _firewalltable_en:
|
||||
.. csv-table:: Firewall rules of the AusweisApp2
|
||||
:header: "Name", "Protocol", "Port", "Direction", "Connection reference"
|
||||
:widths: 25, 15, 15, 15, 30
|
||||
:align: left
|
||||
|
||||
"AusweisApp2-Firewall-Rule", TCP, \*, "outgoing", "eID2, eID3, SaC2, Update"
|
||||
"AusweisApp2-Firewall-Rule-SaC-In", UDP, 24727, "incoming", "SaC1"
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\end{landscape}
|
||||
|
|
|
@ -42,7 +42,7 @@ master_doc = 'index'
|
|||
|
||||
# General information about the project.
|
||||
project = 'AusweisApp2 Installation'
|
||||
copyright = '2018, Governikus GmbH & Co. KG'
|
||||
copyright = '2018-2019, Governikus GmbH & Co. KG'
|
||||
author = 'Governikus GmbH & Co. KG'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
|
@ -120,7 +120,8 @@ latex_elements = {
|
|||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
'preamble': '''
|
||||
\hypersetup{pdfauthor={Governikus GmbH \& Co. KG},
|
||||
\\usepackage{lscape}
|
||||
\\hypersetup{pdfauthor={Governikus GmbH \& Co. KG},
|
||||
pdftitle={AusweisApp2},
|
||||
pdfsubject={Installation},
|
||||
pdfkeywords={installation},
|
||||
|
|
|
@ -6,7 +6,7 @@ Table of contents
|
|||
\clearpage
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:maxdepth: 3
|
||||
:caption: Installation
|
||||
|
||||
README.de
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
AusweisApp2 1.16.2
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
**Releasedatum:** 15. April 2019
|
||||
|
||||
|
||||
|
||||
Anwender
|
||||
""""""""
|
||||
- Der Abbruch-Dialog beim Wechsel in den PIN-Änderungsmodus aus einem
|
||||
laufenden Ausweisvorgang heraus wird nicht länger angezeigt.
|
||||
|
||||
- Alte Log-Dateien werden unter Android automatisch bereinigt.
|
||||
|
||||
- Gekoppelte Smartphones als Kartenleser (SaK) werden jetzt korrekt als
|
||||
verfügbar angezeigt, wenn die Verbindung automatisch durch die AA2
|
||||
hergestellt wurde.
|
||||
|
||||
- Erklärungstexte der mobilen App wurden verbessert.
|
||||
|
||||
- In der mobilen App erfolgt kein Browser-Redirect mehr, wenn die
|
||||
Transport-PIN innerhalb eines Ausweisvorgangs in eine 6-stellige PIN
|
||||
überführt wird.
|
||||
|
||||
- Der Fehlerdialog wurde um die Möglichkeit erweitert, eine Email an den
|
||||
Support der AusweisApp2 zu senden, mit der Bitte die Protokolldatei
|
||||
anzuhängen. Die Email enthält automatisch ermittelte Daten zum
|
||||
verwendeten System sowie die letzten, kritischen Fehlermeldungen.
|
||||
|
||||
- Hinterlegte Daten zu Kartenlesern und Diensteanbietern wurden aktualisiert.
|
||||
|
||||
- Die Versionsnummer der AusweisApp2 ist nicht mehr Teil des
|
||||
Installationspfads, um Probleme mit Antiviren-Software zu vermeiden.
|
||||
|
||||
- Ein Absturz beim Start einer Authentisierung, wenn die AusweisApp2
|
||||
im Hintergrund läuft, ist behoben.
|
||||
|
||||
- Die Erkennung von Smartphones als Kartenleser wurde verbessert.
|
||||
|
||||
- Die Erkennung der Kartenleser in der Diagnose wurde korrigiert.
|
||||
|
||||
- Sonstige kleinere Fehler korrigiert.
|
||||
|
||||
|
||||
Entwickler
|
||||
""""""""""
|
||||
- Der Standard-Logger der jeweiligen Plattform kann mittels
|
||||
Parameter "--no-loghandler" deaktiviert werden.
|
||||
|
||||
- Anleitung "Installation in Firmennetzwerken" wurde erweitert.
|
|
@ -4,10 +4,11 @@ Abkündigungen
|
|||
Mit der Version 1.18.0 der AusweisApp2 wird die Unterstützung
|
||||
folgender Systeme eingestellt.
|
||||
|
||||
- OS X 10.11
|
||||
- x86-Architektur unter Android
|
||||
|
||||
|
||||
Mit der Version 1.16.0 der AusweisApp2 wird die Unterstützung
|
||||
Mit der Version 1.16.0 der AusweisApp2 wurde die Unterstützung
|
||||
folgender Systeme eingestellt.
|
||||
|
||||
- OS X 10.10
|
||||
|
@ -15,7 +16,7 @@ folgender Systeme eingestellt.
|
|||
- Android 4.4
|
||||
|
||||
|
||||
Mit der Version 1.16.0 der AusweisApp2 wird die Unterstützung
|
||||
Mit der Version 1.16.0 der AusweisApp2 wurde die Unterstützung
|
||||
folgender TLS-Cipher eingestellt.
|
||||
|
||||
- DHE-DSS-AES256-GCM-SHA384
|
||||
|
|
|
@ -4,6 +4,7 @@ Release Notes
|
|||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
1.16.2
|
||||
1.16.1
|
||||
1.16.0
|
||||
announce
|
||||
|
|
|
@ -42,7 +42,7 @@ master_doc = 'index'
|
|||
|
||||
# General information about the project.
|
||||
project = 'AusweisApp2'
|
||||
copyright = '2016-2018, Governikus GmbH & Co. KG'
|
||||
copyright = '2016-2019, Governikus GmbH & Co. KG'
|
||||
author = 'Governikus GmbH & Co. KG'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
|
|
|
@ -34,9 +34,3 @@ Die nachfolgende Liste bezieht sich auf die aktuelle Version der AusweisApp2.
|
|||
- Bei der Nutzung eines entfernten Kartenlesegeräts mit aktiviertem
|
||||
Tastaturmodus kann bei einer Authentisierung nicht in die PIN-Änderung
|
||||
gewechselt werden, wenn nur eine 5-stellige PIN vorhanden ist.
|
||||
|
||||
- Bei der Nutzung eines entfernten Kartenlesegeräts mit aktiviertem
|
||||
Tastaturmodus merkt sich das entfernte Kartenlesegerät fälschlicherweise
|
||||
die zuletzt ausgewählte Länge der PIN (5/6 Stellen). Ein Neustart des
|
||||
Fernzugriffs auf dem entfernten Kartenlesegerät setzt die Länge auf
|
||||
6 Stellen zurück.
|
||||
|
|
|
@ -42,7 +42,7 @@ master_doc = 'appcast'
|
|||
|
||||
# General information about the project.
|
||||
project = 'AusweisApp2'
|
||||
copyright = '2016-2018, Governikus GmbH & Co. KG'
|
||||
copyright = '2016-2019, Governikus GmbH & Co. KG'
|
||||
author = 'Governikus GmbH & Co. KG'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
|
|
|
@ -48,9 +48,9 @@ und sollte daher mit allen marktüblichen Browsern verwendet werden können.
|
|||
Im Rahmen der Qualitätssicherung werden die folgenden Browserversionen
|
||||
getestet.
|
||||
|
||||
- Firefox 64
|
||||
- Firefox 66
|
||||
|
||||
- Chrome 71
|
||||
- Chrome 74
|
||||
|
||||
- Internet Explorer 11
|
||||
|
||||
|
@ -116,9 +116,9 @@ folgenden Browser zu verwenden.
|
|||
|
||||
- Firefox Klar 8
|
||||
|
||||
- Chrome 71
|
||||
- Chrome 73
|
||||
|
||||
- Android System WebView 70
|
||||
- Android System WebView 73
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ Versionszweig 1.16
|
|||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
1.16.2
|
||||
1.16.1
|
||||
1.16.0
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ master_doc = 'index'
|
|||
|
||||
# General information about the project.
|
||||
project = 'AusweisApp2 SDK'
|
||||
copyright = '2016-2018, Governikus GmbH & Co. KG'
|
||||
copyright = '2016-2019, Governikus GmbH & Co. KG'
|
||||
author = 'Governikus GmbH & Co. KG'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
|
|
|
@ -278,7 +278,14 @@ ELSEIF(APPLE)
|
|||
SET(QT_CONFIGURE_FLAGS ${QT_CONFIGURE_FLAGS} ${QT_CONFIGURE_FLAGS_OTHER} -framework -sdk ${osx_sdk})
|
||||
ELSEIF(WIN32)
|
||||
IF(MSVC)
|
||||
SET(QT_PLATFORM win32-msvc2015)
|
||||
IF(MSVC_TOOLSET_VERSION STREQUAL "140")
|
||||
SET(QT_PLATFORM win32-msvc2015)
|
||||
ELSEIF(MSVC_TOOLSET_VERSION STREQUAL "141")
|
||||
SET(QT_PLATFORM win32-msvc2017)
|
||||
ELSE()
|
||||
MESSAGE(FATAL_ERROR "Version of MSVC not supported")
|
||||
ENDIF()
|
||||
|
||||
SET(QT_OPENSSL OPENSSL_LIBS=-llibcrypto\ -llibssl)
|
||||
ELSE()
|
||||
SET(QT_PLATFORM win32-g++)
|
||||
|
@ -333,6 +340,8 @@ ExternalProject_Add(qt
|
|||
${PATCH_CMD} -p1 ${PATCH_OPTIONS} ${PATCHES_DIR}/qt-Android-Fix-crash.patch &&
|
||||
${PATCH_CMD} -p1 ${PATCH_OPTIONS} ${PATCHES_DIR}/qt-QObject-Fix-isSignalConnected-when-signals-have-been.patch &&
|
||||
${PATCH_CMD} -p1 ${PATCH_OPTIONS} ${PATCHES_DIR}/qt-Use-user-provided-session-data-if-available.patch &&
|
||||
${PATCH_CMD} -p1 ${PATCH_OPTIONS} ${PATCHES_DIR}/qt-Work-Around-FreeBSD-v12-build.patch &&
|
||||
${PATCH_CMD} -p1 ${PATCH_OPTIONS} ${PATCHES_DIR}/qt-Linux-Remove-our-use-of-syscall-for-statx-2-and-rena.patch &&
|
||||
${CMAKE_COMMAND} -E touch qtbase/.gitignore
|
||||
CONFIGURE_COMMAND ${QT_ENV} ${QT_CONFIGURE} ${QT_CONFIGURE_FLAGS} ${QT_CONFIGURE_FLAGS_SKIP_MODULES}
|
||||
BUILD_COMMAND ${MAKE} ${MAKE_JOBS}
|
||||
|
|
|
@ -0,0 +1,135 @@
|
|||
From f65d3fbf6cc8a50a2b6b1b5632b9b9cf189054f0 Mon Sep 17 00:00:00 2001
|
||||
From: Thiago Macieira <thiago.macieira@intel.com>
|
||||
Date: Wed, 19 Sep 2018 00:05:54 -0500
|
||||
Subject: [PATCH] Linux: Remove our use of syscall() for statx(2) and
|
||||
renameat2(2)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Those system calls are present in glibc 2.28. Instead of using
|
||||
syscall(3) to place the system calls directly, let's use only the glibc
|
||||
functions. That also means we no longer accept ENOSYS from either
|
||||
function, if they were detected in glibc.
|
||||
|
||||
Change-Id: I44e7d800c68141bdaae0fffd1555b4b8fe63786b
|
||||
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
|
||||
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
||||
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
|
||||
---
|
||||
src/corelib/global/minimum-linux_p.h | 7 +++-
|
||||
src/corelib/io/qfilesystemengine_unix.cpp | 45 ++---------------------
|
||||
2 files changed, 9 insertions(+), 43 deletions(-)
|
||||
|
||||
diff --git x/qtbase/src/corelib/global/minimum-linux_p.h y/qtbase/src/corelib/global/minimum-linux_p.h
|
||||
index bad2488b4d..9c074e13ba 100644
|
||||
--- x/qtbase/src/corelib/global/minimum-linux_p.h
|
||||
+++ y/qtbase/src/corelib/global/minimum-linux_p.h
|
||||
@@ -75,9 +75,14 @@ QT_BEGIN_NAMESPACE
|
||||
* - accept4 2.6.28
|
||||
* - renameat2 3.16 QT_CONFIG(renameat2)
|
||||
* - getrandom 3.17 QT_CONFIG(getentropy)
|
||||
+ * - statx 4.11 QT_CONFIG(statx)
|
||||
*/
|
||||
|
||||
-#if QT_CONFIG(getentropy)
|
||||
+#if QT_CONFIG(statx)
|
||||
+# define MINLINUX_MAJOR 4
|
||||
+# define MINLINUX_MINOR 11
|
||||
+# define MINLINUX_PATCH 0
|
||||
+#elif QT_CONFIG(getentropy)
|
||||
# define MINLINUX_MAJOR 3
|
||||
# define MINLINUX_MINOR 17
|
||||
# define MINLINUX_PATCH 0
|
||||
diff --git x/qtbase/src/corelib/io/qfilesystemengine_unix.cpp y/qtbase/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
index deb4a9f220..40e8f82a80 100644
|
||||
--- x/qtbase/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
+++ y/qtbase/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
-** Copyright (C) 2017 Intel Corporation.
|
||||
+** Copyright (C) 2018 Intel Corporation.
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2013 Samuel Gaist <samuel.gaist@edeltech.ch>
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
@@ -88,7 +88,6 @@ extern "C" NSString *NSTemporaryDirectory();
|
||||
|
||||
#if defined(Q_OS_LINUX)
|
||||
# include <sys/ioctl.h>
|
||||
-# include <sys/syscall.h>
|
||||
# include <sys/sendfile.h>
|
||||
# include <linux/fs.h>
|
||||
|
||||
@@ -96,28 +95,6 @@ extern "C" NSString *NSTemporaryDirectory();
|
||||
#ifndef FICLONE
|
||||
# define FICLONE _IOW(0x94, 9, int)
|
||||
#endif
|
||||
-
|
||||
-# if defined(Q_OS_ANDROID)
|
||||
-// renameat2() and statx() are disabled on Android because quite a few systems
|
||||
-// come with sandboxes that kill applications that make system calls outside a
|
||||
-// whitelist and several Android vendors can't be bothered to update the list.
|
||||
-# undef SYS_renameat2
|
||||
-# undef SYS_statx
|
||||
-# undef STATX_BASIC_STATS
|
||||
-# else
|
||||
-# if !QT_CONFIG(renameat2) && defined(SYS_renameat2)
|
||||
-static int renameat2(int oldfd, const char *oldpath, int newfd, const char *newpath, unsigned flags)
|
||||
-{ return syscall(SYS_renameat2, oldfd, oldpath, newfd, newpath, flags); }
|
||||
-# endif
|
||||
-
|
||||
-# if !QT_CONFIG(statx) && defined(SYS_statx)
|
||||
-# include <linux/stat.h>
|
||||
-static int statx(int dirfd, const char *pathname, int flag, unsigned mask, struct statx *statxbuf)
|
||||
-{ return syscall(SYS_statx, dirfd, pathname, flag, mask, statxbuf); }
|
||||
-# elif !QT_CONFIG(statx) && !defined(SYS_statx)
|
||||
-# undef STATX_BASIC_STATS
|
||||
-# endif
|
||||
-# endif // !Q_OS_ANDROID
|
||||
#endif
|
||||
|
||||
#ifndef STATX_ALL
|
||||
@@ -331,22 +308,8 @@ mtime(const T &statBuffer, int)
|
||||
#ifdef STATX_BASIC_STATS
|
||||
static int qt_real_statx(int fd, const char *pathname, int flags, struct statx *statxBuffer)
|
||||
{
|
||||
-#ifdef Q_ATOMIC_INT8_IS_SUPPORTED
|
||||
- static QBasicAtomicInteger<qint8> statxTested = Q_BASIC_ATOMIC_INITIALIZER(0);
|
||||
-#else
|
||||
- static QBasicAtomicInt statxTested = Q_BASIC_ATOMIC_INITIALIZER(0);
|
||||
-#endif
|
||||
-
|
||||
- if (statxTested.load() == -1)
|
||||
- return -ENOSYS;
|
||||
-
|
||||
unsigned mask = STATX_BASIC_STATS | STATX_BTIME;
|
||||
int ret = statx(fd, pathname, flags, mask, statxBuffer);
|
||||
- if (ret == -1 && errno == ENOSYS) {
|
||||
- statxTested.store(-1);
|
||||
- return -ENOSYS;
|
||||
- }
|
||||
- statxTested.store(1);
|
||||
return ret == -1 ? -errno : 0;
|
||||
}
|
||||
|
||||
@@ -1282,14 +1245,12 @@ bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSy
|
||||
if (Q_UNLIKELY(srcPath.isEmpty() || tgtPath.isEmpty()))
|
||||
return emptyFileEntryWarning(), false;
|
||||
|
||||
-#if defined(RENAME_NOREPLACE) && (QT_CONFIG(renameat2) || defined(SYS_renameat2))
|
||||
+#if defined(RENAME_NOREPLACE) && QT_CONFIG(renameat2)
|
||||
if (renameat2(AT_FDCWD, srcPath, AT_FDCWD, tgtPath, RENAME_NOREPLACE) == 0)
|
||||
return true;
|
||||
|
||||
- // If we're using syscall(), check for ENOSYS;
|
||||
- // if renameat2 came from libc, we don't accept ENOSYS.
|
||||
// We can also get EINVAL for some non-local filesystems.
|
||||
- if ((QT_CONFIG(renameat2) || errno != ENOSYS) && errno != EINVAL) {
|
||||
+ if (errno != EINVAL) {
|
||||
error = QSystemError(errno, QSystemError::StandardLibraryError);
|
||||
return false;
|
||||
}
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
From ec00fb42be3206956fd9ac7518018b47652f2bb8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andr=C3=A9=20Klitzing?= <aklitzing@gmail.com>
|
||||
Date: Fri, 28 Dec 2018 16:12:16 +0100
|
||||
Subject: [PATCH] Work-Around FreeBSD v12 build
|
||||
|
||||
https://bugreports.qt.io/browse/QTBUG-72775
|
||||
|
||||
Change-Id: Ib39e8e488c2abd0321e91acd15614085c7e2156b
|
||||
---
|
||||
src/network/kernel/qnetworkinterface_unix.cpp | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git x/qtbase/src/network/kernel/qnetworkinterface_unix.cpp y/qtbase/src/network/kernel/qnetworkinterface_unix.cpp
|
||||
index d69fc47667..eebca77189 100644
|
||||
--- x/qtbase/src/network/kernel/qnetworkinterface_unix.cpp
|
||||
+++ y/qtbase/src/network/kernel/qnetworkinterface_unix.cpp
|
||||
@@ -463,8 +463,10 @@ static QNetworkInterface::InterfaceType probeIfType(int socket, int iftype, stru
|
||||
case IFM_ETHER:
|
||||
return QNetworkInterface::Ethernet;
|
||||
|
||||
+#ifndef Q_OS_FREEBSD
|
||||
case IFM_FDDI:
|
||||
return QNetworkInterface::Fddi;
|
||||
+#endif
|
||||
|
||||
case IFM_IEEE80211:
|
||||
return QNetworkInterface::Ieee80211;
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -25,7 +25,7 @@ IF(TARGET Qt5::Qml)
|
|||
WRITE_QRC("${ausweisapp_qml.qrc}" "${CMAKE_CURRENT_SOURCE_DIR}/qml" "qml")
|
||||
LIST(APPEND QRC_FILES "${ausweisapp_qml.qrc}")
|
||||
|
||||
SET(QML_IMPORT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/qml CACHE string "qml files" FORCE)
|
||||
SET(QML_IMPORT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/qml CACHE STRING "qml files" FORCE)
|
||||
ENDIF()
|
||||
|
||||
SET(RCC ${CMAKE_BINARY_DIR}/src/${PROJECT_NAME}.rcc)
|
||||
|
|
|
@ -29,6 +29,10 @@
|
|||
<file>images/tutorial/main_menu_where_caret.svg</file>
|
||||
<file>images/tutorial/main_menu_how_caret.svg</file>
|
||||
<file>images/tutorial/main_menu_important_caret.svg</file>
|
||||
<file>images/tutorial/icon_box.svg</file>
|
||||
<file>images/tutorial/icon_circle.svg</file>
|
||||
<file>images/tutorial/icon_diamond.svg</file>
|
||||
<file>images/tutorial/icon_star.svg</file>
|
||||
<file>images/tutorial/arrow_blue.svg</file>
|
||||
<file>images/tutorial/arrows.svg</file>
|
||||
<file>images/tutorial/button_de.png</file>
|
||||
|
@ -40,6 +44,7 @@
|
|||
<file>images/tutorial/thumb_up.svg</file>
|
||||
<file>images/tutorial/hand.svg</file>
|
||||
<file>images/tutorial/check.svg</file>
|
||||
<file>images/tutorial/cross.svg</file>
|
||||
<file>images/tutorial/click.svg</file>
|
||||
<file>images/tutorial/save.svg</file>
|
||||
<file>images/tutorial/bva.svg</file>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
"_comment_5": "array of certificates for checking the authenticity of updates; DER format, hex encoded",
|
||||
"updateCertificates": [
|
||||
"3082083a30820722a003020102020900d5b6a4dc1fd8854a300d06092a864886f70d01010b05003081df310b300906035504061302444531253023060355040a0c1c542d53797374656d7320496e7465726e6174696f6e616c20476d6248311f301d060355040b0c16542d53797374656d732054727573742043656e746572311c301a06035504080c134e6f7264726865696e205765737466616c656e310e300c06035504110c0535373235303110300e06035504070c074e65747068656e3120301e06035504090c17556e7465726520496e647573747269657374722e2032303126302406035504030c1d54656c65536563205365727665725061737320436c6173732032204341301e170d3137313230313130343733325a170d3230313230363233353935395a308180310b30090603550406130244453121301f060355040a0c18476f7665726e696b757320476d6248202620436f2e204b47310b3009060355040b13025345310f300d060355040813064272656d656e310f300d060355040713064272656d656e311f301d060355040313166170706c2e676f7665726e696b75732d6173702e646530820222300d06092a864886f70d01010105000382020f003082020a0282020100c1d969514392105ce65b089b7357f75356f076b21168233d1eb57ae81f826c74258ec4814c48a3e99633fcac1fb444412cba421c1569d21b6317b6614b096203ab5b605128671764d30186dec09716d2173bfab911a9ad3d2d0b850ff2595dd9c72113bd64879c39c39b3debbfdd7f8d68e8d1bdaf2cca0508583bd59b965ec5f4950e4fbbe48b7be351237d478253bc34ac5aed9448f5ae31878067bdad75179cb776ef19f8e49e62b830de8279142233030189c20008345553847b7edc6471bf7c15c98b087159b44faa5a35fe16adc285e4d8266fab49b7b4e7fbcbd91767e05dbb45a5564cb11abcbeb0ff66869ca72dd7919eae796340fb5b26fb8ecc65b8380d3eb30e46150725e2156ad156773a79b482133b846b247868a6d3fcc18f96cfc6044fb7678fd79c04fb580b7bfb86e3252554b9a97dfd6fb9ae0e0d8d663a56b471d37752fc88a172151494553d78a39ade4669076e5ddfa13fd684b7eb800efedf9af8f90d4bab6d80378b950d43ef6de6f9ca5dccb81ecbbf820126d90923c5b87462af2acf0fc460599b2d7022e488f20069e2b3e80e057ebbd1454891929c2e0252688a1c0e801eb8bec795251087a755a6edcd22759a5c1869550d63b0596cb5ac20a7e5cb11f5412598990092cbe058b4ec67b98dd9ed2b2a5f8b7994e92b89a1ef51517beb2e2594cb8007d514f988968c52246a18945fba0adf0203010001a382035430820350301f0603551d2304183016801494c87446f53ab4464826f82bca341e5626041200300e0603551d0f0101ff0404030205a0301d0603551d250416301406082b0601050507030206082b06010505070301301d0603551d0e041604148c76a1377b9cad8059a5d4126a53bc633671ca1c305a0603551d20045330513045060a2b06010401bd470d17013037303506082b060105050702011629687474703a2f2f7777772e74656c657365632e64652f736572766572706173732f6370732e68746d6c3008060667810c010202308201030603551d1f0481fb3081f83040a03ea03c863a687474703a2f2f63726c2e736572766572706173732e74656c657365632e64652f726c2f536572766572506173735f436c6173735f322e63726c3081b3a081b0a081ad8681aa6c6461703a2f2f6c6461702e736572766572706173732e74656c657365632e64652f434e3d54656c6553656325323053657276657250617373253230436c6173732532303225323043412c4f553d542d53797374656d73253230547275737425323043656e7465722c4f3d542d53797374656d73253230496e7465726e6174696f6e616c253230476d62482c433d44453f43657274696669636174655265766f636174696f6e4c6973743082014906082b060105050701010482013b30820137303306082b060105050730018627687474703a2f2f6f6373702e736572766572706173732e74656c657365632e64652f6f63737072305206082b060105050730028646687474703a2f2f63726c2e736572766572706173732e74656c657365632e64652f6372742f54656c655365635f536572766572506173735f436c6173735f325f43412e6365723081ab06082b0601050507300286819e6c6461703a2f2f6c6461702e736572766572706173732e74656c657365632e64652f434e3d54656c6553656325323053657276657250617373253230436c6173732532303225323043412c4f553d542d53797374656d73253230547275737425323043656e7465722c4f3d542d53797374656d73253230496e7465726e6174696f6e616c253230476d62482c433d44453f63414365727469666963617465300c0603551d130101ff0402300030210603551d11041a301882166170706c2e676f7665726e696b75732d6173702e6465300d06092a864886f70d01010b050003820101006376f829a32345d2d590176bf2294d9ab6fe44e6c7db3b467bd597eebda4121d6e8795ec33de253ff9f271857c4a1ddf4b80b080464a51741a53de5137be13fc482e41b3649afbb571bfec2a894022d933ca60c691a99f31fe40209e7ca2e7fcd15d33baf8c1d20e107750cbd8628bc883af062a622f29c36574decaf97ef00471bbbe81380042ab82e46788491e4f77e58168f154d5210748263bfb8b2c3c82937436f758e1b2360c22458803a304eb90a4617bdcaa591176f4002e63dce3c9a3c7dcec83472dec70346544105118227fce63bae6a6686950846f65f30de621c1e5d6b7b20f3ce7d8ebbd95667c89123adb9efcbdd5ea1ba6e71b152bea43d3",
|
||||
"308205633082044ba00302010202135100000749e339b5a8a2ecb8e8000000000749300d06092a864886f70d01010b0500304431153013060a0992268993f22c64011916056c6f63616c31153013060a0992268993f22c6401191605626f736b67311430120603550403130b676f766b67726f6f746361301e170d3136313232393039343930325a170d3138313232393039353930325a307c310b3009060355040613024445310b3009060355040813024445310f300d060355040713064272656d656e31163014060355040a130d476f7665726e696b7573204b47311c301a060355040b131353797374656d7320456e67696e656572696e6731193017060355040314102a2e74662e626f732d746573742e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100c2ce4b611d136b4a99f43bd6487c323f812f00c433ed7ec3d343b93c1b064ba12ff3f950634bbba55283ea48bf91d3a6736ee17c3467918b22d9ba1d55f9b8593461b42ed54454d15577abe0ec286203c4c33a82aae8216c802f8f81f1d06473f85acbf6ba69357828030a97086aa1bc6836cae3916d2d83f24c153a05402e13828a30822e7a861395be7d7c511b84baf4bc4a5daeb3db755b37e8ffb5dd18f8ac22c018801e212ab59b96e64b85c3d418c577c33ef73cc0ba5fef68041ba39fa0b795e7b5eabfa408c36ca582572ca2adde4cd104ccad376eaa06b41e737121f349eedb063438b406bd32dc032659e9cbad809afb5679d8a7d776a916ead35b0203010001a382021430820210300e0603551d0f0101ff0404030205a030130603551d25040c300a06082b0601050507030130240603551d11041d301b82102a2e74662e626f732d746573742e646582012a87040ad2f861301d0603551d0e04160414262451b4431de1ccdb523d93038d7e01c4a3d153301f0603551d230418301680144b7e48a7b2f2db121642634bcd7e1c0deee96285303b0603551d1f043430323030a02ea02c862a687474703a2f2f676f7663726c2e676f7665726e696b75732e64652f63726c2f7265766f6b652e63726c3081eb06082b060105050701010481de3081db3081aa06082b0601050507300286819d6c6461703a2f2f2f434e3d676f766b67726f6f7463612c434e3d4149412c434e3d5075626c69632532304b657925323053657276696365732c434e3d53657276696365732c434e3d436f6e66696775726174696f6e2c44433d626f736b672c44433d6c6f63616c3f634143657274696669636174653f626173653f6f626a656374436c6173733d63657274696669636174696f6e417574686f72697479302c06082b060105050730018620687474703a2f2f676f7663726c2e676f7665726e696b75732e64652f6f637370303b06092b0601040182371507042e302c06242b060104018237150887a4920efcad6b83a98117819cb41586e9ea5a1791ff2e87b7af7c020164020109301b06092b060104018237150a040e300c300a06082b06010505070301300d06092a864886f70d01010b05000382010100a41dd5971c9b983bc3369bc9f3046481ff05aab5b47fac27a8cb7f917585b15c5acfbc8d083375a459b0642974968f4e00ad501d715dfb8a9e098437459ddcbba5a7d49f0278bd841b89fb93e86683bd89334f6b5ab556834e1fb4ec86647e812438e17512ee87b01bd0679b3abf4a67fe7272eae0c4cd9ed174d70b2728e72361cded46a42d445dfe244efb55feb1eee13f614d30237ee399b4108bc596b8aab377ad98d22c87ce4ce976ec1ceac512c33d6941b715d9fa60882b4644f9a066dcd51ff6c429af37cfa38f06444e6682d09643b2866a23a42da0ae21a787e8fe40aa2b21aa55a10aa42097c9a219528ac4968eb12cec5f223791a40d21fcce05"
|
||||
"3082093a30820822a0030201020210042e5dd11e0c69cdec3882747019081c300d06092a864886f70d01010b05003081df310b300906035504061302444531253023060355040a0c1c542d53797374656d7320496e7465726e6174696f6e616c20476d6248311f301d060355040b0c16542d53797374656d732054727573742043656e746572311c301a06035504080c134e6f7264726865696e205765737466616c656e310e300c06035504110c0535373235303110300e06035504070c074e65747068656e3120301e06035504090c17556e7465726520496e647573747269657374722e2032303126302406035504030c1d54656c65536563205365727665725061737320436c6173732032204341301e170d3139303330373131343530325a170d3231303331323233353935395a3074310b30090603550406130244453121301f060355040a0c18476f7665726e696b757320476d6248202620436f2e204b47310b3009060355040b13025345310f300d060355040813064272656d656e310f300d060355040713064272656d656e3113301106035504030c0a2a2e676f766b672e646530820222300d06092a864886f70d01010105000382020f003082020a0282020100b03a180c094b52a862ef5fce194147f705d3340d79282a103a14d14fabe3d849a62df93b5f09eed3ad60e6ae5570a3823370aeeb888df9e0fc9a513be26308d783cc7cefd4ef43337e2c854b03ef399c647a19d31c39fe2b1d08c9cc27462ba5e43bc97e494ac62059496579967fa3fe8b1111e016d6dd37eda00e5617bb571cbb042e6750d17dd3acf1055b8dd6a1130214992a673bfc671e2586355378dfbb14a2910d37faa221178cb2dba0e87544ed6acbb2344ac439dbd16c05e1c0f76fa757305c0c38f3ccab420fd49603717986c8d748ce4ea2863260da6a832df53bb6247ada2431239b0a9815b89d6bb0f58a4da508695637c0b10368260cbf7dd8d469fb81d21b560a25125e9cfc8ae09a8b9e7a1cc688a8e49c045f1dc397a7c28e637b11c5205d8375ccfb627b071a813665de2fe172de97671dfecce44d9545a6f083cff4c7e2df4780b9073b19ca93b97561ca0c9bc5687ec0a1de993b199eca2576e820f26ce043fbab092f6e0bbc510b14d4b2489733e28cd38f40928cce16f4f3b6bba6277cff19312ad5771507ae729b6c083924c53d1c1fc33e370af1a0060307b3ef83880886334133c2e645bbf7f14a26acbce1609daceac1ed8d5d2bff8d8ed095a7af79f608134256f1e4a34650225595dd9fa5746448417d7a2f8f0c5ef001b5e4780e6d8caf818b314fb708447f70f3844d39a7ff437ebbf6a70203010001a382045a30820456301f0603551d2304183016801494c87446f53ab4464826f82bca341e5626041200300e0603551d0f0101ff0404030205a0301d0603551d250416301406082b0601050507030206082b06010505070301301d0603551d0e04160414db05538bd26c0bea1bcb5cde439b81e6ab8aa40b305a0603551d20045330513045060a2b06010401bd470d17013037303506082b060105050702011629687474703a2f2f7777772e74656c657365632e64652f736572766572706173732f6370732e68746d6c3008060667810c010202304b0603551d1f044430423040a03ea03c863a687474703a2f2f63726c2e736572766572706173732e74656c657365632e64652f726c2f536572766572506173735f436c6173735f322e63726c30819906082b0601050507010104818c308189303306082b060105050730018627687474703a2f2f6f6373702e736572766572706173732e74656c657365632e64652f6f63737072305206082b060105050730028646687474703a2f2f63726c2e736572766572706173732e74656c657365632e64652f6372742f54656c655365635f536572766572506173735f436c6173735f325f43412e636572300c0603551d130101ff04023000301f0603551d1104183016820a2a2e676f766b672e64658208676f766b672e64653082026f060a2b06010401d6790204020482025f0482025b02590076006f5376ac31f03119d89900a45115ff77151c11d902c10029068db2089a37d9130000016957f896900000040300473045022046b42ef57f79c932690c6558eb52f354b8e4f5c49c7dc50616a351dbbe823785022100957c17a3f70a7ee20a920a29bb123e186b425a4c0c4dbd5372ab5163abe88284007600ee4bbdb775ce60bae142691fabe19e66a30f7e5fb072d88300c47b897aa8fdcb0000016957f89686000004030047304502210085921f55932ee2b42b7b6cd1b9627f9d376485024210f8f4358d60ebc25b6d6d022069f72703fc8d7added3f8cc041aee457d011e22425ecdfbebcfd1b312c0ad6220077005581d4c2169036014aea0b9b573c53f0c0e43878702508172fa3aa1d0713d30c0000016957f897e400000403004830460221009c4b1fdcfde4bacba79665a77da038ab42399578dbc80c9ce21ab5054217edf2022100d23970d124e0f1ee384f6cc2e53d76df6069190dc91b9be5be24219898081ad9007600a4b90990b418581487bb13a2cc67700a3c359804f91bdfb8e377cd0ec80ddc100000016957f8968c000004030047304502210099ca67064864c67ab92b4f13c11fd8be58453585f80e4e3d9a1d18a191aba1670220603bc43ad9700dd891e1bb135b2cd0fad041a6f63bed0d9c778a3e96d6082f33007600bbd9dfbc1f8a71b593942397aa927b473857950aab52e81a909664368e1ed1850000016957f896870000040300473045022100e6810cf7ec2ee244d5ae516246973f46c7710bf075c923b21451abc6622b9dee02202ccd410f907ba8176bcb12198f1b0821cf95a550e2486a0292cadca7a670dac2300d06092a864886f70d01010b05000382010100103ab77dff430d59dcd9d5c94b9c2ea44d829d0a70777c42a137ea627eca87881ce9131f00ea7282f7fe7cd7ac8f154f84622023183aac3f02ce4a5925cfb771961e114b78cec3950c0a4aa7726c01ba69c60cf3a4c68ea63e92f8dd0bf2f1e033bb91c536df9945ba281abae1bde75f920f94df2fa2c2ff708a57291114889e374eb9c8f7da0bb8a0d19bda964b3ac32e174cbb9d956c9693f0a6326a80d7019cbc8e54949981d5bf231f85c6ff5be5bc0fcaeb637bf84a8be424ebe2cefdef4c89d2a4682efda5c8010e432977d26e6f30e7e9ed13f612fea99dbd9799e6460ca780a109ff3dc7a86887479832baac8589aebeadf50759077aadfd2d467d06"
|
||||
],
|
||||
|
||||
"tlsSettings": {
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="43px" height="38px" viewBox="0 0 43 38">
|
||||
<path fill="#fff" stroke-linejoin="round" stroke="#000" stroke-width="0.75px" d="M 9.75 35.625 h 4 l 27.5 -33.25 h -4" />
|
||||
<path fill="#000" stroke-linejoin="round" d="M 2 2 h 8 l 28 34 h -8 Z" />
|
||||
<path fill="#000" stroke-linejoin="round" d="M 30 2 h 8 l -28 34 h -8 Z" />
|
||||
</svg>
|
After Width: | Height: | Size: 428 B |
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28px" height="28px" viewBox="0 0 28 28">
|
||||
<rect x="5" y="5" width="21" height="21" fill="none" stroke-width="2px" stroke="#ffffff" stroke-opacity="0.3" />
|
||||
</svg>
|
After Width: | Height: | Size: 323 B |
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28px" height="28px" viewBox="0 0 28 28">
|
||||
<circle cx="14" cy="14" r="12" fill="none" stroke-width="2px" stroke="#ffffff" stroke-opacity="0.3" />
|
||||
</svg>
|
After Width: | Height: | Size: 312 B |
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28px" height="28px" viewBox="0 0 28 28">
|
||||
<path d="M 14 2 L 26 14 14 26 2 14 Z" fill="none" stroke-width="2px" stroke="#ffffff" stroke-opacity="0.3" />
|
||||
</svg>
|
After Width: | Height: | Size: 320 B |
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="28px" height="28px" viewBox="0 0 28 28">
|
||||
<path d="M 14 2 L 26 10 22 26 6 26 2 10 Z" fill="none" stroke-width="2px" stroke="#ffffff" stroke-opacity="0.3" />
|
||||
</svg>
|
After Width: | Height: | Size: 281 B |
|
@ -1,7 +1,7 @@
|
|||
FROM scratch
|
||||
MAINTAINER Governikus KG <ausweisapp2@governikus.com>
|
||||
|
||||
ARG version="3.8.0"
|
||||
ARG version="3.9.0"
|
||||
ARG arch="x86_64"
|
||||
ADD alpine-minirootfs-$version-$arch.tar.gz /
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ RUN echo "[multilib]" >> /etc/pacman.conf && echo 'Include = /etc/pacman.d/mirro
|
|||
|
||||
RUN chown -R governikus: /var/cache/pacman/pkg/
|
||||
|
||||
ARG JENKINS_SWARM_VERSION=3.13
|
||||
ARG JENKINS_SWARM_VERSION=3.15
|
||||
ARG TINI_VERSION=0.18.0
|
||||
RUN curl -L -o /sbin/tini https://github.com/krallin/tini/releases/download/v$TINI_VERSION/tini-static-muslc-amd64 && chmod 755 /sbin/tini && \
|
||||
curl -L -o /swarm-client.jar https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/$JENKINS_SWARM_VERSION/swarm-client-$JENKINS_SWARM_VERSION.jar
|
||||
|
|
|
@ -3,7 +3,7 @@ MAINTAINER Governikus KG <ausweisapp2@governikus.com>
|
|||
|
||||
ENV NAME=Common LABELS=Common
|
||||
|
||||
RUN apk --no-cache add cmake make uncrustify py2-pip && pip install python-hglib && apk del py2-pip
|
||||
RUN apk --no-cache add cmake make uncrustify
|
||||
|
||||
USER governikus
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ MAINTAINER Governikus KG <ausweisapp2@governikus.com>
|
|||
|
||||
ENV NAME=Docs LABELS=Docs
|
||||
|
||||
RUN apk --no-cache add cmake make py2-sphinx py2-setuptools py2-pip py2-hglib icu-libs poppler zziplib texlive-full && \
|
||||
RUN apk --no-cache add cmake make py2-sphinx py2-setuptools py2-pip icu-libs poppler zziplib texlive-full && \
|
||||
pip install doc8 cloud_sptheme
|
||||
|
||||
USER governikus
|
||||
|
|
|
@ -16,21 +16,3 @@ do
|
|||
docker build -t alpine:$i .
|
||||
done
|
||||
|
||||
|
||||
|
||||
################### Arch
|
||||
cd ../arch
|
||||
ls archlinux-bootstrap-*.tar.gz >/dev/null
|
||||
ls busybox* >/dev/null
|
||||
|
||||
echo "Building base Arch ..."
|
||||
docker build -t arch:latest .
|
||||
cd ..
|
||||
|
||||
images=(android)
|
||||
for i in "${images[@]}"
|
||||
do
|
||||
echo "Building $i ..."
|
||||
docker build -t arch:$i -f $i/Dockerfile .
|
||||
done
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
FROM alpine:swarm
|
||||
MAINTAINER Governikus KG <ausweisapp2@governikus.com>
|
||||
|
||||
ENV NAME=Linux LABELS="Linux g++ clang++"
|
||||
ENV NAME=Linux LABELS="Linux g++ clang++" PACKAGES_DIR=/home/governikus/packages
|
||||
|
||||
RUN apk --no-cache add cmake make g++ clang clang-analyzer mercurial ccache gcovr cloc cppcheck pkgconf ninja pcsc-lite-dev binutils-gold \
|
||||
RUN apk --no-cache add cmake make g++ clang clang-analyzer ccache cloc cppcheck pkgconf ninja pcsc-lite-dev binutils-gold \
|
||||
mesa-dev libx11-dev libxkbcommon-dev xcb-util-wm-dev xcb-util-image-dev xcb-util-keysyms-dev \
|
||||
py2-pip && \
|
||||
ln -s /usr/libexec/c++-analyzer /usr/local/bin && ln -s /usr/libexec/ccc-analyzer /usr/local/bin && \
|
||||
pip install python-hglib && apk del py2-pip
|
||||
pip install gcovr && apk del py2-pip
|
||||
|
||||
USER governikus
|
||||
RUN mkdir -p /home/governikus/.ccache && mkdir -p /home/governikus/workspace && mkdir -p /home/governikus/packages
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
FROM alpine:latest
|
||||
MAINTAINER Governikus KG <ausweisapp2@governikus.com>
|
||||
|
||||
ARG JENKINS_SWARM_VERSION=3.13
|
||||
ARG JENKINS_SWARM_VERSION=3.15
|
||||
ENV EXECUTOR=3 LABELS= NAME= PASSWORD=
|
||||
|
||||
RUN adduser governikus -s /bin/sh -D
|
||||
RUN apk --no-cache add openjdk8-jre tini mercurial wget
|
||||
RUN apk --no-cache add openjdk8-jre tini mercurial py2-hglib wget
|
||||
RUN wget -O /swarm-client.jar https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/$JENKINS_SWARM_VERSION/swarm-client-$JENKINS_SWARM_VERSION.jar
|
||||
|
||||
ADD swarm.sh /
|
||||
|
|
|
@ -5,9 +5,9 @@ name=${NAME:-undefined}
|
|||
executor=${EXECUTOR:-1}
|
||||
labels=${LABELS:-undefined}
|
||||
mode=${MODE:-exclusive}
|
||||
master=${MASTER:-https://vtf-aajenkins.tf.bos-test.de/}
|
||||
user=${USER:-aajenkins}
|
||||
fingerprints=${FINGERPRINTS:-68:21:59:5C:C0:B0:1F:78:FF:23:DE:D4:D8:05:0F:74:38:B2:A5:A4:F2:1B:5B:A7:AA:81:2A:A1:46:A8:EB:3A}
|
||||
master=${MASTER:-https://ausweisapp-ci.govkg.de/}
|
||||
user=${USER:-jenkins-swarm}
|
||||
fingerprints=${FINGERPRINTS:-74:8C:AE:1C:05:99:95:04:66:CC:B1:27:6F:2B:59:E7:1E:64:47:45:D3:C1:E8:5B:E6:E5:1F:BD:98:97:18:FB}
|
||||
|
||||
/usr/bin/java \
|
||||
-jar /swarm-client.jar \
|
||||
|
|
|
@ -40,6 +40,11 @@ j.with
|
|||
|
||||
publishers {
|
||||
androidLint('build/dist/build/outputs/lint-results-*.xml')
|
||||
{
|
||||
thresholds(
|
||||
unstableTotal: [all: 14]
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -88,6 +93,11 @@ j.with
|
|||
|
||||
publishers {
|
||||
androidLint('build/dist/build/outputs/lint-results-*.xml')
|
||||
{
|
||||
thresholds(
|
||||
unstableTotal: [all: 12]
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,13 +33,11 @@ j.with
|
|||
'''))
|
||||
|
||||
shell('''\
|
||||
export LD_LIBRARY_PATH=$WORKSPACE/libs/build/dist/lib:$LD_LIBRARY_PATH
|
||||
cd build; make ${MAKE_FLAGS}
|
||||
'''.stripIndent().trim())
|
||||
|
||||
shell('''\
|
||||
export QML2_IMPORT_PATH=$WORKSPACE/libs/build/dist/qml
|
||||
export LD_LIBRARY_PATH=$WORKSPACE/libs/build/dist/lib:$LD_LIBRARY_PATH
|
||||
export ASAN_OPTIONS=detect_leaks=0,new_delete_type_mismatch=0
|
||||
cd build; ctest --output-on-failure ${MAKE_FLAGS}
|
||||
'''.stripIndent().trim())
|
||||
|
|
|
@ -15,13 +15,13 @@ j.with
|
|||
{
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
cmake ../source -DCMAKE_CXX_COMPILER=clcache -DCMAKE_PREFIX_PATH=%WORKSPACE%/libs/build/dist -GNinja
|
||||
'''.stripIndent().trim())
|
||||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
ninja %MAKE_FLAGS%
|
||||
'''.stripIndent().trim())
|
||||
|
||||
|
|
|
@ -16,19 +16,19 @@ j.with
|
|||
{
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
cmake ../source -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_CXX_COMPILER=clcache -DCMAKE_PREFIX_PATH=%WORKSPACE%/libs/build/dist -GNinja -DWIN_SIGN_KEYSTORE=%WIN_SIGN_KEYSTORE% -DWIN_SIGN_KEYSTORE_PSW=%WIN_SIGN_KEYSTORE_PSW% -DWIN_SIGN_SUBJECT_NAME=%WIN_SIGN_SUBJECT_NAME%
|
||||
'''.stripIndent().trim())
|
||||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
ninja %MAKE_FLAGS% package
|
||||
'''.stripIndent().trim())
|
||||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
ninja package.sign
|
||||
'''.stripIndent().trim())
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ j.with
|
|||
{
|
||||
steps
|
||||
{
|
||||
shell("cd build; cmake ../source/libs -DCMAKE_BUILD_TYPE=release -DPACKAGES_DIR=\${PACKAGES_DIR}")
|
||||
shell("cd build; cmake ../source/libs -DCMAKE_BUILD_TYPE=debug -DPACKAGES_DIR=\${PACKAGES_DIR}")
|
||||
|
||||
shell('cd build; make compress')
|
||||
}
|
||||
|
|
|
@ -13,13 +13,13 @@ j.with
|
|||
{
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
cmake ../source/libs -DCMAKE_BUILD_TYPE=release -DPACKAGES_DIR=%PACKAGES_DIR% -G"NMake Makefiles" -DWIN_SIGN_KEYSTORE=%WIN_SIGN_KEYSTORE% -DWIN_SIGN_KEYSTORE_PSW=%WIN_SIGN_KEYSTORE_PSW% -DWIN_SIGN_SUBJECT_NAME=%WIN_SIGN_SUBJECT_NAME%
|
||||
'''.stripIndent().trim())
|
||||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
nmake compress
|
||||
'''.stripIndent().trim())
|
||||
}
|
||||
|
|
|
@ -13,13 +13,13 @@ j.with
|
|||
{
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
cmake ../source/libs -DPACKAGES_DIR=%PACKAGES_DIR% -G"NMake Makefiles" -DWIN_SIGN_KEYSTORE=%WIN_SIGN_KEYSTORE% -DWIN_SIGN_KEYSTORE_PSW=%WIN_SIGN_KEYSTORE_PSW% -DWIN_SIGN_SUBJECT_NAME=%WIN_SIGN_SUBJECT_NAME%
|
||||
'''.stripIndent().trim())
|
||||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
nmake compress
|
||||
'''.stripIndent().trim())
|
||||
}
|
||||
|
|
|
@ -39,6 +39,11 @@ j.with
|
|||
|
||||
publishers {
|
||||
androidLint('build/dist/build/outputs/lint-results-*.xml')
|
||||
{
|
||||
thresholds(
|
||||
unstableTotal: [all: 14]
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -94,6 +99,11 @@ j.with
|
|||
|
||||
publishers {
|
||||
androidLint('build/dist/build/outputs/lint-results-*.xml')
|
||||
{
|
||||
thresholds(
|
||||
unstableTotal: [all: 12]
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ def j = new Review
|
|||
name: 'FreeBSD',
|
||||
libraries: ['FreeBSD'],
|
||||
label: 'FreeBSD',
|
||||
artifacts: 'tmp/AusweisApp2.*.log',
|
||||
artifacts: 'tmp/*.log',
|
||||
allowEmptyArtifacts: true,
|
||||
xunit: true,
|
||||
).generate(this)
|
||||
|
|
|
@ -15,13 +15,13 @@ j.with
|
|||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
cmake ../source/libs -DCMAKE_BUILD_TYPE=release -DPACKAGES_DIR=%PACKAGES_DIR% -G"NMake Makefiles" -DWIN_SIGN_KEYSTORE=%WIN_SIGN_KEYSTORE% -DWIN_SIGN_KEYSTORE_PSW=%WIN_SIGN_KEYSTORE_PSW% -DWIN_SIGN_SUBJECT_NAME=%WIN_SIGN_SUBJECT_NAME%
|
||||
'''.stripIndent().trim())
|
||||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
nmake compress
|
||||
'''.stripIndent().trim())
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ def j = new Review
|
|||
name: 'Linux',
|
||||
libraries: ['Linux'],
|
||||
label: 'Linux',
|
||||
artifacts: 'tmp/AusweisApp2.*.log',
|
||||
artifacts: 'tmp/*.log',
|
||||
allowEmptyArtifacts: true,
|
||||
xunit: true,
|
||||
jobType: JobType.Matrix
|
||||
|
@ -44,13 +44,11 @@ j.with
|
|||
'''))
|
||||
|
||||
shell('''\
|
||||
export LD_LIBRARY_PATH=$WORKSPACE/libs/build/dist/lib:$LD_LIBRARY_PATH
|
||||
cd build; make ${MAKE_FLAGS}
|
||||
'''.stripIndent().trim())
|
||||
|
||||
shell('''\
|
||||
export QML2_IMPORT_PATH=${WORKSPACE}/libs/build/dist/qml
|
||||
export LD_LIBRARY_PATH=$WORKSPACE/libs/build/dist/lib:$LD_LIBRARY_PATH
|
||||
export ASAN_OPTIONS=detect_leaks=0,new_delete_type_mismatch=0
|
||||
cd build; ctest --output-on-failure ${MAKE_FLAGS}
|
||||
'''.stripIndent().trim())
|
||||
|
|
|
@ -6,7 +6,7 @@ def j = new Review
|
|||
name: 'MacOS',
|
||||
libraries: ['MacOS'],
|
||||
label: 'MacOS',
|
||||
artifacts: 'tmp/AusweisApp2.*.log',
|
||||
artifacts: 'tmp/*.log',
|
||||
allowEmptyArtifacts: true,
|
||||
xunit: true
|
||||
).generate(this)
|
||||
|
|
|
@ -6,7 +6,7 @@ def j = new Review
|
|||
name: 'Win32_GNU',
|
||||
libraries: ['Win32_GNU'],
|
||||
label: 'Windows',
|
||||
artifacts: 'tmp/AusweisApp2.*.log',
|
||||
artifacts: 'tmp/*.log',
|
||||
allowEmptyArtifacts: true,
|
||||
xunit: true
|
||||
).generate(this)
|
||||
|
|
|
@ -5,7 +5,7 @@ def j = new Review
|
|||
name: 'Win32_MSVC',
|
||||
libraries: ['Win32_MSVC_dev'],
|
||||
label: 'MSVC',
|
||||
artifacts: 'tmp/AusweisApp2.*.log',
|
||||
artifacts: 'tmp/*.log',
|
||||
allowEmptyArtifacts: true,
|
||||
xunit: true
|
||||
).generate(this)
|
||||
|
@ -19,13 +19,13 @@ j.with
|
|||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
cmake -Werror=dev ../source -DCMAKE_CXX_COMPILER=clcache -DCMAKE_PREFIX_PATH=%WORKSPACE%/libs/build/dist -GNinja
|
||||
'''.stripIndent().trim())
|
||||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
ninja %MAKE_FLAGS%
|
||||
'''.stripIndent().trim())
|
||||
|
||||
|
|
|
@ -17,19 +17,19 @@ j.with
|
|||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
cmake -Werror=dev ../source -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_CXX_COMPILER=clcache -DCMAKE_PREFIX_PATH=%WORKSPACE%/libs/build/dist -GNinja -DWIN_SIGN_KEYSTORE=%WIN_SIGN_KEYSTORE% -DWIN_SIGN_KEYSTORE_PSW=%WIN_SIGN_KEYSTORE_PSW% -DWIN_SIGN_SUBJECT_NAME=%WIN_SIGN_SUBJECT_NAME%
|
||||
'''.stripIndent().trim())
|
||||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
ninja %MAKE_FLAGS% package
|
||||
'''.stripIndent().trim())
|
||||
|
||||
batchFile('''\
|
||||
cd build
|
||||
call vcvarsall.bat
|
||||
call vcvarsall.bat x86
|
||||
ninja package.sign
|
||||
'''.stripIndent().trim())
|
||||
}
|
||||
|
|
|
@ -3,6 +3,12 @@
|
|||
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="@string/app_name" android:icon="@drawable/npa">
|
||||
<meta-data android:name="android.max_aspect" android:value="2.1" />
|
||||
|
||||
<receiver android:name="com.governikus.ausweisapp2.UpdateReceiver" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<provider android:name="android.support.v4.content.FileProvider"
|
||||
android:authorities="${applicationId}"
|
||||
android:exported="false"
|
||||
|
@ -160,6 +166,7 @@
|
|||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
<uses-permission android:name="android.permission.NFC"/>
|
||||
|
|
|
@ -24,9 +24,9 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>@VERSION@</string>
|
||||
<string>@PROJECT_VERSION@</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>@VERSION@</string>
|
||||
<string>@PROJECT_VERSION@</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>aaii</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
|
|
|
@ -48,6 +48,6 @@
|
|||
<String Id="CustomInstallDirDlg_Title" Overridable="yes">Installationsoptionen</String>
|
||||
<String Id="CustomInstallDirDlg_Description" Overridable="yes"></String>
|
||||
<String Id="CustomInstallDirDlg_DesktopShortcutCheckBox" Overridable="yes">Verknüpfung auf dem Desktop anlegen</String>
|
||||
<String Id="CustomInstallDirDlg_SystemSettingsCheckBox" Overridable="yes">Die [ProductName] im System registrieren (Firewall- und Browser-Einstellungen vornehmen)</String>
|
||||
<String Id="CustomInstallDirDlg_SystemSettingsCheckBox" Overridable="yes">Notwendige Regeln zur Windows-Firewall hinzufügen</String>
|
||||
<String Id="CustomExitDialog_LaunchCheckBox" Overridable="yes">Starten der AusweisApp2</String>
|
||||
</WixLocalization>
|
||||
|
|
|
@ -8,6 +8,6 @@
|
|||
<String Id="CustomInstallDirDlg_Title" Overridable="yes">Installation options</String>
|
||||
<String Id="CustomInstallDirDlg_Description" Overridable="yes"></String>
|
||||
<String Id="CustomInstallDirDlg_DesktopShortcutCheckBox" Overridable="yes">Create link on desktop</String>
|
||||
<String Id="CustomInstallDirDlg_SystemSettingsCheckBox" Overridable="yes">Register the [ProductName] in the system (Firewall and Browser settings)</String>
|
||||
<String Id="CustomInstallDirDlg_SystemSettingsCheckBox" Overridable="yes">Add required rules to Windows Firewall</String>
|
||||
<String Id="CustomExitDialog_LaunchCheckBox" Overridable="yes">Start AusweisApp</String>
|
||||
</WixLocalization>
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
<MajorUpgrade
|
||||
Schedule="afterInstallInitialize"
|
||||
AllowSameVersionUpgrades="yes"
|
||||
DowngradeErrorMessage="!(loc.DowngradeErrorMessage)"/>
|
||||
|
||||
<Condition Message="!(loc.WindowsServerNotSupported)">
|
||||
|
|
|
@ -52,6 +52,15 @@ ApplicationWindow {
|
|||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: Constants.bottomNavigation ? navBar.top : parent.bottom
|
||||
|
||||
onReadyChanged: {
|
||||
splashScreen.hide()
|
||||
if (!ApplicationModel.currentWorkflow && !settingsModel.showTutorialOnStart) {
|
||||
navBar.lockedAndHidden = false
|
||||
}
|
||||
|
||||
feedback.showIfNecessary()
|
||||
}
|
||||
}
|
||||
|
||||
Navigation {
|
||||
|
@ -106,8 +115,7 @@ ApplicationWindow {
|
|||
x: (appWindow.width - width) / 2
|
||||
y: (appWindow.height - height) / 2
|
||||
|
||||
property alias ready: contentArea.ready
|
||||
onReadyChanged: {
|
||||
function showIfNecessary() {
|
||||
if (ApplicationModel.areStoreFeedbackDialogConditionsMet()) {
|
||||
ApplicationModel.hideFutureStoreFeedbackDialogs()
|
||||
feedback.open()
|
||||
|
@ -115,16 +123,14 @@ ApplicationWindow {
|
|||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: plugin
|
||||
enabled: contentArea.ready
|
||||
onFireApplicationActivated: feedback.showIfNecessary()
|
||||
}
|
||||
|
||||
SplashScreen {
|
||||
id: splashScreen
|
||||
color: appWindow.color
|
||||
|
||||
property alias ready: contentArea.ready
|
||||
onReadyChanged: {
|
||||
splashScreen.hide()
|
||||
if (!ApplicationModel.currentWorkflow && !settingsModel.showTutorialOnStart) {
|
||||
navBar.lockedAndHidden = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ import Governikus.Type.NumberModel 1.0
|
|||
SectionPage
|
||||
{
|
||||
id: baseItem
|
||||
property string remoteDeviceId: ""
|
||||
property alias enableTransportPinLink: transportPinLink.enableTransportPinLink
|
||||
signal pinEntered()
|
||||
signal changePinLength()
|
||||
|
@ -163,7 +162,7 @@ SectionPage
|
|||
baseItem.pinEntered()
|
||||
break
|
||||
case "REMOTE_PIN":
|
||||
RemoteServiceModel.connectToServer(remoteDeviceId, pinField.text)
|
||||
RemoteServiceModel.connectToRememberedServer(pinField.text)
|
||||
baseItem.pinEntered()
|
||||
break
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ SectionPage {
|
|||
Loader {
|
||||
readonly property string titleText: qsTr("FAQ") + settingsModel.translationTrigger
|
||||
readonly property string descriptionText: qsTr("Do you have questions how to use AusweisApp2?") + settingsModel.translationTrigger
|
||||
function onClickFunction() { Qt.openUrlExternally(qsTr("https://www.ausweisapp.bund.de/en/questions-and-answers/frequently-asked-questions/")) }
|
||||
function onClickFunction() { Qt.openUrlExternally(qsTr("https://www.ausweisapp.bund.de/en/qa/frequently-asked-questions/")) }
|
||||
width: parent.width
|
||||
sourceComponent: subMenu
|
||||
}
|
||||
|
@ -79,7 +79,7 @@ SectionPage {
|
|||
Loader {
|
||||
readonly property string titleText: qsTr("Support") + settingsModel.translationTrigger
|
||||
readonly property string descriptionText: qsTr("You need further help?") + settingsModel.translationTrigger
|
||||
function onClickFunction() { Qt.openUrlExternally(qsTr("https://www.ausweisapp.bund.de/en/questions-and-answers/support/")) }
|
||||
function onClickFunction() { Qt.openUrlExternally(qsTr("https://www.ausweisapp.bund.de/en/qa/support/")) }
|
||||
width: parent.width
|
||||
sourceComponent: subMenu
|
||||
}
|
||||
|
|
|
@ -8,10 +8,12 @@ import "Utils.js" as Utils
|
|||
* Android style guide for material design is adapted.
|
||||
*/
|
||||
Item {
|
||||
id: baseItem
|
||||
property alias text: textItem.text
|
||||
property color buttonColor: Constants.blue
|
||||
property int maxWidth: 0
|
||||
property alias iconSource: icon.source
|
||||
property bool animationsDisabled: false
|
||||
|
||||
signal clicked
|
||||
|
||||
|
@ -20,11 +22,11 @@ Item {
|
|||
|
||||
state: "normal"
|
||||
states: [
|
||||
State { name: "normal"; when: !mouseArea.pressed
|
||||
State { name: "normal"; when: baseItem.animationsDisabled || !mouseArea.pressed
|
||||
PropertyChanges { target: darkLayer; width: 0 }
|
||||
PropertyChanges { target: shadow; verticalOffset: Utils.dp(2) }
|
||||
},
|
||||
State { name: "pressed"; when: mouseArea.pressed
|
||||
State { name: "pressed"; when: !baseItem.animationsDisabled && mouseArea.pressed
|
||||
PropertyChanges { target: darkLayer; width: 2 * rect.width }
|
||||
PropertyChanges { target: shadow; verticalOffset: Utils.dp(8) }
|
||||
}
|
||||
|
|
|
@ -9,8 +9,9 @@ Rectangle {
|
|||
property alias text: textItem.text
|
||||
property color buttonColor : Constants.blue
|
||||
property int maxWidth: 0
|
||||
property int preferedWidth: parent.width - 4 * Constants.component_spacing
|
||||
property int preferedWidth: Math.max(textItem.implicitWidth + (icon.visible ? (icon.width + icon.anchors.leftMargin) : 0) + (2 * Utils.dp(16)), Utils.dp(88))
|
||||
property alias iconSource: icon.source
|
||||
property bool animationsDisabled: false
|
||||
|
||||
signal clicked
|
||||
|
||||
|
@ -31,11 +32,15 @@ Rectangle {
|
|||
|
||||
Text {
|
||||
id: textItem
|
||||
anchors.centerIn: parent
|
||||
anchors.left: rect.left
|
||||
anchors.right: rect.right
|
||||
anchors.verticalCenter: rect.verticalCenter
|
||||
color: enabled ? "white" : "#40000000"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
opacity: mouseArea.containsMouse ? 0.5 : 1
|
||||
anchors.leftMargin: icon.visible ? icon.width + icon.anchors.leftMargin : 0
|
||||
font.pixelSize: Utils.dp(16)
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
MouseArea{
|
||||
|
@ -50,7 +55,7 @@ Rectangle {
|
|||
x: mouseArea.mouseX - width * 0.5
|
||||
height: parent.height
|
||||
width: height * 2
|
||||
visible: mouseArea.pressed
|
||||
visible: !rect.animationsDisabled && mouseArea.pressed
|
||||
opacity: 1
|
||||
gradient: Gradient {
|
||||
GradientStop { position: 0.0; color: Qt.rgba(255,255,255,1) }
|
||||
|
|
|
@ -173,7 +173,7 @@ Item {
|
|||
break
|
||||
case "FinalState":
|
||||
navBar.lockedAndHidden = true
|
||||
if (AuthModel.error) {
|
||||
if (AuthModel.error && !AuthModel.hasNextWorkflowPending) {
|
||||
showRemoveCardFeedback()
|
||||
firePush(identifyResult)
|
||||
} else {
|
||||
|
|
|
@ -103,7 +103,7 @@ SectionPage
|
|||
|
||||
EnterPinView {
|
||||
id: enterPinView
|
||||
leftTitleBarAction: TitleBarAction { state: "cancel"; onClicked: AuthModel.cancelWorkflow() }
|
||||
leftTitleBarAction: TitleBarAction { state: "cancel"; onClicked: { firePop(); AuthModel.cancelWorkflow() } }
|
||||
headerTitleBarAction: TitleBarAction { text: qsTr("Identify") + settingsModel.translationTrigger }
|
||||
visible: false
|
||||
|
||||
|
@ -113,7 +113,7 @@ SectionPage
|
|||
}
|
||||
|
||||
onChangePinLength: {
|
||||
firePush(changeToTransportPinView)
|
||||
fireReplace(changeToTransportPinView)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -174,12 +174,14 @@ SectionPage
|
|||
|
||||
ResultView {
|
||||
id: changeToTransportPinView
|
||||
leftTitleBarAction: TitleBarAction { state: "back"; onClicked: firePop() }
|
||||
leftTitleBarAction: TitleBarAction { state: "back"; onClicked: fireReplace(enterPinView) }
|
||||
headerTitleBarAction: TitleBarAction { text: qsTr("Change transport PIN") + settingsModel.translationTrigger; font.bold: true }
|
||||
resultType: ResultView.Type.IsInfo
|
||||
buttonText: qsTr("Change PIN") + settingsModel.translationTrigger
|
||||
text: qsTr("You leave the process and are forwarded to the PIN management. Please restart the desired process after the PIN has been changed.") + settingsModel.translationTrigger
|
||||
text: qsTr("You have to change your transport PIN into a personal PIN to use the online ID function. You are currently leaving the started process and are forwarded to the PIN management. Please restart the desired process after the PIN has been changed.") + settingsModel.translationTrigger
|
||||
onClicked: {
|
||||
firePop()
|
||||
AuthModel.setSkipRedirect(true)
|
||||
ChangePinModel.startWorkflow()
|
||||
AuthModel.cancelWorkflowToChangePin()
|
||||
}
|
||||
|
|
|
@ -4,10 +4,35 @@ import Governikus.Global 1.0
|
|||
import Governikus.TitleBar 1.0
|
||||
import Governikus.Type.ApplicationModel 1.0
|
||||
|
||||
|
||||
Item {
|
||||
id: baseItem
|
||||
|
||||
QtObject {
|
||||
id: d
|
||||
|
||||
property int testPkiCounter: 0
|
||||
|
||||
function toggleTestPki() {
|
||||
d.testPkiCounter += 1
|
||||
switch (d.testPkiCounter) {
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
qmlExtension.showFeedback(10-d.testPkiCounter + qsTr(" more presses to toggle test PKI.") + settingsModel.translationTrigger)
|
||||
break;
|
||||
case 10:
|
||||
settingsModel.useSelfauthenticationTestUri = !settingsModel.useSelfauthenticationTestUri
|
||||
if(settingsModel.useSelfauthenticationTestUri) {
|
||||
qmlExtension.showFeedback(qsTr("Test PKI activated.") + settingsModel.translationTrigger)
|
||||
} else {
|
||||
qmlExtension.showFeedback(qsTr("Test PKI deactivated.") + settingsModel.translationTrigger)
|
||||
}
|
||||
d.testPkiCounter = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Column {
|
||||
readonly property int maxWidth: width - 2 * Constants.pane_padding
|
||||
width: baseItem.width
|
||||
|
@ -29,6 +54,13 @@ Item {
|
|||
width: Math.min(maxHeight * ratio, parent.width * 0.4)
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "qrc:///images/siteWithLogo.png"
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
d.toggleTestPki()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
|
|
|
@ -42,13 +42,13 @@ SectionPage {
|
|||
MoreViewMenuItem {
|
||||
text: qsTr("FAQ") + settingsModel.translationTrigger
|
||||
imageSource: "qrc:///images/iOS/more/icon_mehr_info.svg"
|
||||
onClicked: Qt.openUrlExternally(qsTr("https://www.ausweisapp.bund.de/en/questions-and-answers/frequently-asked-questions/"))
|
||||
onClicked: Qt.openUrlExternally(qsTr("https://www.ausweisapp.bund.de/en/qa/frequently-asked-questions/"))
|
||||
}
|
||||
|
||||
MoreViewMenuItem {
|
||||
text: qsTr("Support") + settingsModel.translationTrigger
|
||||
imageSource: "qrc:///images/iOS/more/icon_mehr_fragen.svg"
|
||||
onClicked: Qt.openUrlExternally(qsTr("https://www.ausweisapp.bund.de/en/questions-and-answers/support/"))
|
||||
onClicked: Qt.openUrlExternally(qsTr("https://www.ausweisapp.bund.de/en/qa/support/"))
|
||||
}
|
||||
|
||||
MoreViewMenuItem {
|
||||
|
@ -60,7 +60,7 @@ SectionPage {
|
|||
Qt.openUrlExternally("market://details?id=com.governikus.ausweisapp2")
|
||||
}
|
||||
else if (Qt.platform.os === "ios") {
|
||||
Qt.openUrlExternally(qsTr("https://www.ausweisapp.bund.de/en/questions-and-answers/evaluate-us/"))
|
||||
Qt.openUrlExternally(qsTr("https://www.ausweisapp.bund.de/en/qa/evaluate-us/"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ Popup {
|
|||
inputMethodHints: Qt.ImhDigitsOnly
|
||||
validator: RegExpValidator { regExp: /\d\d\d\d/ }
|
||||
onAccepted: {
|
||||
RemoteServiceModel.connectToServer(deviceId, name.getText(0,4))
|
||||
RemoteServiceModel.connectToRememberedServer(name.getText(0,4))
|
||||
close()
|
||||
}
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ Popup {
|
|||
visible: requestInput
|
||||
|
||||
onClicked: {
|
||||
RemoteServiceModel.connectToServer(deviceId, name.getText(0,4))
|
||||
RemoteServiceModel.connectToRememberedServer(name.getText(0,4))
|
||||
close()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,7 +80,9 @@ Item {
|
|||
delegate: AvailableDevicesListDelegate {
|
||||
width: searchDeviceList.width
|
||||
onRequestPairing: {
|
||||
enterPinView.remoteDeviceId = pDeviceId
|
||||
if (!RemoteServiceModel.rememberServer(pDeviceId)) {
|
||||
return
|
||||
}
|
||||
informationPairingPopup.open()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,11 +6,32 @@ Rectangle {
|
|||
id: baseItem
|
||||
height: Math.max(backToMenu.height, quitTutorial.height)
|
||||
|
||||
property alias backRotation: leftArrow.rotation
|
||||
property alias backText: menuText.text
|
||||
property bool backToMenuActive: true
|
||||
|
||||
signal menuClicked()
|
||||
signal quitTutorialClicked()
|
||||
|
||||
states: [
|
||||
State { name: "showBothOptions"; when: baseItem.backToMenuActive
|
||||
PropertyChanges { target: backToMenu; opacity: 1 }
|
||||
AnchorChanges { target: quitTutorial; anchors.right: baseItem.right}
|
||||
AnchorChanges { target: quitTutorial; anchors.horizontalCenter: undefined}
|
||||
},
|
||||
State { name: "showOnlyQuit"; when: !baseItem.backToMenuActive
|
||||
AnchorChanges { target: quitTutorial; anchors.horizontalCenter: baseItem.horizontalCenter}
|
||||
AnchorChanges { target: quitTutorial; anchors.right: undefined}
|
||||
PropertyChanges { target: backToMenu; opacity: 0 }
|
||||
}
|
||||
]
|
||||
transitions: [
|
||||
Transition {
|
||||
PropertyAnimation { target: backToMenu; property: "opacity"}
|
||||
AnchorAnimation { duration: 500; easing.type: Easing.InOutQuad }
|
||||
}
|
||||
]
|
||||
|
||||
Item {
|
||||
id: backToMenu
|
||||
anchors.left: parent.left
|
||||
|
@ -33,6 +54,7 @@ Rectangle {
|
|||
spacing: Constants.component_spacing
|
||||
|
||||
Image {
|
||||
id: leftArrow
|
||||
source: "qrc:///images/tutorial/arrows.svg"
|
||||
rotation: -90
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -51,15 +73,12 @@ Rectangle {
|
|||
color: Constants.white
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Item {
|
||||
id: quitTutorial
|
||||
height: quitRow.height + 2 * Constants.component_spacing
|
||||
width: quitRow.width
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
MouseArea {
|
||||
|
@ -74,7 +93,7 @@ Rectangle {
|
|||
id: quitRow
|
||||
height: quitText.height
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.right: parent.right
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
padding: Constants.component_spacing
|
||||
spacing: Constants.component_spacing
|
||||
|
||||
|
@ -89,7 +108,7 @@ Rectangle {
|
|||
|
||||
Image {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
source: "qrc:///images/tutorial/arrows.svg"
|
||||
source: "qrc:///images/tutorial/cross.svg"
|
||||
|
||||
height: parent.height
|
||||
width: height * (sourceSize.width / sourceSize.height)
|
||||
|
|
|
@ -9,24 +9,40 @@ Item {
|
|||
|
||||
property alias headerImageSource: headerImage.source
|
||||
property alias titleText: title.text
|
||||
property string miniIconSource
|
||||
property alias miniIconCoordinates: backgroundIcons.model
|
||||
property bool overlapping: true
|
||||
property real overlappingHeight: overlapping ? height * (4.0/3.0) : height
|
||||
property bool categoryAbove: true
|
||||
property real initY
|
||||
signal clicked()
|
||||
|
||||
Image{
|
||||
id: headerImage
|
||||
width: parent.width
|
||||
height: overlapping ? parent.height * (4.0/3.0) : parent.height
|
||||
height: baseItem.overlappingHeight
|
||||
fillMode: Image.Stretch
|
||||
|
||||
MouseArea{
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: baseItem.clicked()
|
||||
}
|
||||
|
||||
Repeater {
|
||||
id: backgroundIcons
|
||||
Image {
|
||||
source: baseItem.miniIconSource
|
||||
width: height
|
||||
height: 0.125 * baseItem.overlappingHeight
|
||||
x: modelData.x * baseItem.width
|
||||
y: modelData.y * baseItem.overlappingHeight
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
id: title
|
||||
anchors.centerIn: parent
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
y: ((categoryAbove ? 0.575 : 0.5) * parent.height) - (0.5 * height)
|
||||
font.bold: true
|
||||
font.pixelSize: Constants.tutorial_header_font_size
|
||||
layer.enabled: true
|
||||
|
|
|
@ -135,10 +135,13 @@ TutorialContent {
|
|||
source: "qrc:///images/tutorial/section_seperator_how.svg"
|
||||
}
|
||||
|
||||
Item {
|
||||
Rectangle {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: parent.width
|
||||
width: parent.width * 0.95
|
||||
height: methodNfcSection.height
|
||||
color: Constants.white
|
||||
border.width: Utils.dp(3)
|
||||
border.color: Constants.tutorial_blue
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
|
@ -213,10 +216,13 @@ TutorialContent {
|
|||
source: "qrc:///images/tutorial/section_seperator_how.svg"
|
||||
}
|
||||
|
||||
Item {
|
||||
Rectangle {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: parent.width
|
||||
width: parent.width * 0.95
|
||||
height: methodSacDesktopSection.height
|
||||
color: Constants.white
|
||||
border.width: Utils.dp(3)
|
||||
border.color: Constants.tutorial_blue
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
|
@ -327,10 +333,13 @@ TutorialContent {
|
|||
source: "qrc:///images/tutorial/section_seperator_how.svg"
|
||||
}
|
||||
|
||||
Item {
|
||||
Rectangle {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: parent.width
|
||||
width: parent.width * 0.95
|
||||
height: methodSacMobileSection.height
|
||||
color: Constants.white
|
||||
border.width: Utils.dp(3)
|
||||
border.color: Constants.tutorial_blue
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
|
@ -430,10 +439,13 @@ TutorialContent {
|
|||
source: "qrc:///images/tutorial/section_seperator_how.svg"
|
||||
}
|
||||
|
||||
Item {
|
||||
Rectangle {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: parent.width
|
||||
width: parent.width * 0.95
|
||||
height: methodBluetoothSection.height
|
||||
color: Constants.white
|
||||
border.width: Utils.dp(3)
|
||||
border.color: Constants.tutorial_blue
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
|
|
|
@ -291,6 +291,7 @@ SectionPage {
|
|||
id: identifyButton
|
||||
iconSource: "qrc:///images/npa.svg"
|
||||
text: qsTr("Identify now") + settingsModel.translationTrigger;
|
||||
animationsDisabled: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,5 +9,6 @@ TutorialFooter {
|
|||
color: Constants.tutorial_blue
|
||||
anchors.bottom: parent.bottom
|
||||
|
||||
backRotation: 180
|
||||
backText: qsTr("Back") + settingsModel.translationTrigger
|
||||
}
|
||||
|
|
|
@ -198,6 +198,7 @@ SectionPage {
|
|||
id: identifyButton
|
||||
iconSource: "qrc:///images/npa.svg"
|
||||
text: qsTr("Identify now") + settingsModel.translationTrigger;
|
||||
animationsDisabled: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -234,6 +234,7 @@ SectionPage {
|
|||
buttonColor: "green"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: qsTr("Start remote service") + settingsModel.translationTrigger
|
||||
animationsDisabled: true
|
||||
}
|
||||
|
||||
Image {
|
||||
|
@ -258,6 +259,7 @@ SectionPage {
|
|||
id: pairingButton
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: qsTr("Start pairing") + settingsModel.translationTrigger
|
||||
animationsDisabled: true
|
||||
}
|
||||
|
||||
Image {
|
||||
|
@ -515,6 +517,7 @@ SectionPage {
|
|||
id: identifyButton
|
||||
iconSource: "qrc:///images/npa.svg"
|
||||
text: qsTr("Identify now") + settingsModel.translationTrigger;
|
||||
animationsDisabled: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -228,6 +228,7 @@ SectionPage {
|
|||
buttonColor: "green"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: qsTr("Start remote service") + settingsModel.translationTrigger
|
||||
animationsDisabled: true
|
||||
}
|
||||
|
||||
Image {
|
||||
|
@ -252,6 +253,7 @@ SectionPage {
|
|||
id: pairingButton
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: qsTr("Start pairing") + settingsModel.translationTrigger
|
||||
animationsDisabled: true
|
||||
}
|
||||
|
||||
Image {
|
||||
|
@ -515,6 +517,7 @@ SectionPage {
|
|||
id: identifyButton
|
||||
iconSource: "qrc:///images/npa.svg"
|
||||
text: qsTr("Identify now") + settingsModel.translationTrigger;
|
||||
animationsDisabled: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,10 @@ SectionPage {
|
|||
property var lastVisibleItem
|
||||
property int contentWidth: Constants.is_tablet ? root.width * 0.5 : root.width
|
||||
|
||||
leftTitleBarAction: TitleBarAction { state: !topLevelPage ? "back" : ""; onClicked: root.state = "" }
|
||||
leftTitleBarAction: TitleBarAction {
|
||||
state: topLevelPage ? "" : "back";
|
||||
onClicked: state == "back" ? leaveView() : root.state = ""
|
||||
}
|
||||
headerTitleBarAction: TitleBarAction { id: header; text: qsTr("Tutorial") + settingsModel.translationTrigger; font.bold: true }
|
||||
|
||||
onVisibleChanged: {
|
||||
|
@ -182,6 +185,7 @@ SectionPage {
|
|||
width: root.width
|
||||
height: (flickable.height / 13.0 ) * 3.0
|
||||
headerImageSource: "qrc:///images/tutorial/main_menu_what_caret.svg"
|
||||
categoryAbove: false
|
||||
titleText: qsTr("What?") + settingsModel.translationTrigger
|
||||
initY: 0
|
||||
z: 40
|
||||
|
@ -193,6 +197,18 @@ SectionPage {
|
|||
root.state = ""
|
||||
}
|
||||
}
|
||||
|
||||
miniIconSource: "qrc:///images/tutorial/icon_circle.svg"
|
||||
miniIconCoordinates: [
|
||||
{"x": 0.0625, "y": 0.5},
|
||||
{"x": 0.1875, "y": 0.15625},
|
||||
{"x": 0.2, "y": 0.59375},
|
||||
{"x": 0.390625, "y": 0.78125},
|
||||
{"x": 0.65625, "y": 0.15625},
|
||||
{"x": 0.703125, "y": 0.65625},
|
||||
{"x": 0.890625, "y": 0.625},
|
||||
{"x": 0.90625, "y": 0.3125},
|
||||
]
|
||||
}
|
||||
|
||||
TutorialWhat {
|
||||
|
@ -217,6 +233,18 @@ SectionPage {
|
|||
root.state = ""
|
||||
}
|
||||
}
|
||||
|
||||
miniIconSource: "qrc:///images/tutorial/icon_star.svg"
|
||||
miniIconCoordinates: [
|
||||
{"x": 0.046875, "y": 0.34375},
|
||||
{"x": 0.1875, "y": 0.09375},
|
||||
{"x": 0.21875, "y": 0.65625},
|
||||
{"x": 0.4, "y": 0.62},
|
||||
{"x": 0.55, "y": 0.36},
|
||||
{"x": 0.65, "y": 0.28125},
|
||||
{"x": 0.75, "y": 0.5625},
|
||||
{"x": 0.890625, "y": 0.5}
|
||||
]
|
||||
}
|
||||
|
||||
TutorialWhere {
|
||||
|
@ -241,6 +269,18 @@ SectionPage {
|
|||
root.state = ""
|
||||
}
|
||||
}
|
||||
|
||||
miniIconSource: "qrc:///images/tutorial/icon_box.svg"
|
||||
miniIconCoordinates: [
|
||||
{"x": 0.03125, "y": 0.125},
|
||||
{"x": 0.078125, "y": 0.46875},
|
||||
{"x": 0.203125, "y": 0.4375},
|
||||
{"x": 0.32, "y": 0.68},
|
||||
{"x": 0.64, "y": 0.21875},
|
||||
{"x": 0.78125, "y": 0.5625},
|
||||
{"x": 0.875, "y": 0.0625},
|
||||
{"x": 0.9, "y": 0.6}
|
||||
]
|
||||
}
|
||||
|
||||
TutorialHow {
|
||||
|
@ -271,6 +311,18 @@ SectionPage {
|
|||
root.state = ""
|
||||
}
|
||||
}
|
||||
|
||||
miniIconSource: "qrc:///images/tutorial/icon_diamond.svg"
|
||||
miniIconCoordinates: [
|
||||
{"x": 0.046875, "y": 0.46875},
|
||||
{"x": 0.14, "y": 0.22},
|
||||
{"x": 0.25, "y": 0.71875},
|
||||
{"x": 0.62, "y": 0.7},
|
||||
{"x": 0.67, "y": 0.24},
|
||||
{"x": 0.78125, "y": 0.4375},
|
||||
{"x": 0.796875, "y": 0.65625},
|
||||
{"x": 0.9375, "y": 0.1875}
|
||||
]
|
||||
}
|
||||
|
||||
TutorialImportant {
|
||||
|
@ -291,6 +343,7 @@ SectionPage {
|
|||
: whereContent.visible && flickable.contentY > whereHeader.y - 1? Constants.tutorial_green
|
||||
: Constants.tutorial_orange
|
||||
anchors.bottom: parent.bottom
|
||||
backToMenuActive: root.state !== ""
|
||||
|
||||
onMenuClicked: root.state = ""
|
||||
onQuitTutorialClicked: leaveView()
|
||||
|
|
|
@ -216,6 +216,53 @@
|
|||
<translation>Bitte legen Sie Ihren Ausweis ein.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BuildHelper</name>
|
||||
<message>
|
||||
<source>Application</source>
|
||||
<translation>Anwendung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Application Version</source>
|
||||
<translation>Anwendungsversion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Organization</source>
|
||||
<translation>Organisation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Organization Domain</source>
|
||||
<translation>Organisation Homepage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System</source>
|
||||
<translation>System</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Kernel</source>
|
||||
<translation>Kernel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Architecture</source>
|
||||
<translation>Architektur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Device</source>
|
||||
<translation>Gerät</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VersionCode</source>
|
||||
<translation>Versions-Code</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Version</source>
|
||||
<translation>Qt-Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OpenSSL Version</source>
|
||||
<translation>OpenSSL-Version</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BusyOverlay</name>
|
||||
<message>
|
||||
|
@ -573,7 +620,7 @@
|
|||
<translation>Haben Sie Fragen zur Nutzung der AusweisApp2?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/questions-and-answers/frequently-asked-questions/</source>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/frequently-asked-questions/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/haeufig-gestellte-fragen/</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -585,7 +632,7 @@
|
|||
<translation>Benötigen Sie weitere Hilfe?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/questions-and-answers/support/</source>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/support/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/support/</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -938,10 +985,6 @@
|
|||
<source>Change PIN</source>
|
||||
<translation>PIN ändern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>You leave the process and are forwarded to the PIN management. Please restart the desired process after the PIN has been changed.</source>
|
||||
<translation>Sie verlassen den Vorgang und werden zur PIN-Verwaltung weitergeleitet. Starten Sie den gewünschten Vorgang bitte nach der PIN-Änderung erneut.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Retry</source>
|
||||
<translation>Erneut versuchen</translation>
|
||||
|
@ -950,6 +993,10 @@
|
|||
<source>Cancel authentication process</source>
|
||||
<translation>Beende Ausweisvorgang</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>You have to change your transport PIN into a personal PIN to use the online ID function. You are currently leaving the started process and are forwarded to the PIN management. Please restart the desired process after the PIN has been changed.</source>
|
||||
<translation>Sie müssen Ihre fünfstellige Transport-PIN zunächst in eine persönliche PIN ändern. Sie sind dabei den aktuell laufenden Vorgang zu verlassen und zur PIN-Verwaltung weitergeleitet zu werden. Starten Sie den gewünschten Vorgang bitte nach der PIN-Änderung erneut.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Information</name>
|
||||
|
@ -1125,7 +1172,7 @@
|
|||
<translation>FAQ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/questions-and-answers/frequently-asked-questions/</source>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/frequently-asked-questions/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/haeufig-gestellte-fragen/</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -1133,7 +1180,7 @@
|
|||
<translation>Support</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/questions-and-answers/support/</source>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/support/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/support/</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -1141,7 +1188,7 @@
|
|||
<translation>Bewerten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/questions-and-answers/evaluate-us/</source>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/evaluate-us/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/bewerten-sie-uns/</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -1282,16 +1329,10 @@ Anderenfalls können Sie nun Ihr Ausweisdokument vom Kartenlesegerät entfernen.
|
|||
<h4>No card reader detected. Please make sure that a card reader is connected.</h4>
|
||||
<p>If you need help or have problems with your card reader click on the "Diagnosis" button for further information.
|
||||
</p>
|
||||
<p>Please note: It is currently not possible to change your PIN whilst using your smartphone as a card reader.
|
||||
However, you can change your PIN on your smartphone directly as long as the remote service is disabled.
|
||||
</p>
|
||||
</html></source>
|
||||
<translation><html>
|
||||
<h4>Es wurde kein Kartenlesegerät gefunden. Bitte stellen Sie sicher, dass ein Kartenlesegerät angeschlossen ist.</h4>
|
||||
<p>Wenn Sie Hilfe bei der Einrichtung Ihres Kartenlesegerät benötigen, klicken Sie auf "Diagnose".</p>
|
||||
<p>Beachten Sie: Es ist zurzeit noch nicht möglich, Ihre PIN mithilfe der "Smartphone als Kartenlesegerät"-Funktionalität zu ändern.
|
||||
Sie können jedoch Ihre PIN direkt am Smartphone ändern solange der Fernzugriff deaktiviert ist.
|
||||
</p>
|
||||
</html></translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -3291,16 +3332,16 @@ klicken.</translation>
|
|||
<context>
|
||||
<name>governikus::AppQtMainWidget</name>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/service/haeufig-gestellte-fragen/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/service/haeufig-gestellte-fragen/</translation>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/frequently-asked-questions/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/haeufig-gestellte-fragen/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/feedback/melden-sie-einen-fehler/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/feedback/melden-sie-einen-fehler/</translation>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/report-an-error/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/melden-sie-einen-fehler/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/feedback/bewerten-sie-uns/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/feedback/bewerten-sie-uns/</translation>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/evaluate-us/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/bewerten-sie-uns/</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -3873,10 +3914,6 @@ klicken.</translation>
|
|||
<source>Received no data.</source>
|
||||
<translation>Keine Daten erhalten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error occurred. Please contact our support at <a href="https://www.ausweisapp.bund.de/en/service/support/">AusweisApp2 Support</a>.</source>
|
||||
<translation>Ein Fehler ist aufgetreten. Bitte kontaktieren Sie unseren Support unter <a href="https://www.ausweisapp.bund.de/service/support/">AusweisApp2 Support</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot start authentication. An operation is already in progress.</source>
|
||||
<translation>Die Authentisierung kann nicht gestartet werden. Es läuft bereits eine Operation.</translation>
|
||||
|
@ -3970,8 +4007,8 @@ klicken.</translation>
|
|||
<translation>Ein Protokollfehler ist aufgetreten. Bitte überprüfen Sie, dass das Ausweisdokument korrekt aufgelegt ist und versuchen Sie es erneut. Wenn das Problem wieder auftritt kontaktieren Sie bitte unseren Support unter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/service/support/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/service/support/</translation>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/support/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/support/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AusweisApp2 Support</source>
|
||||
|
@ -4074,8 +4111,12 @@ klicken.</translation>
|
|||
<translation>Fehler bei der Verbindung zum Server. Der Verschlüsselungsalgorithmus oder die Länge des Schlüssels im SSL-Zertifikat des Servers wird nicht unterstützt. Zertifikatsaussteller: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error occurred. Please contact our support at <a href="https://www.ausweisapp.bund.de/en/service/support/">AusweisApp2 Support</a> or feel free to send us an email at <a href="mailto:support@ausweisapp.de?subject=Log file&body=<Please describe the error>">support@ausweisapp.de</a>.</source>
|
||||
<translation>Es ist ein Fehler aufgetreten. Bitte kontaktieren Sie unseren <a href="https://www.ausweisapp.bund.de/en/service/support/">AusweisApp2 Support</a> oder senden sie uns eine Email an <a href="mailto:support@ausweisapp.de?subject=Protokolldatei&body=<Bitte beschreiben Sie den Fehler>">support@ausweisapp.de</a>.</translation>
|
||||
<source>An error occurred. Please contact our %1support%2.</source>
|
||||
<translation>Es ist ein Fehler aufgetreten. Bitte kontaktieren und Sie unseren %1Support%2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error occurred. Please contact our %1support%2 or feel free to send us an email.</source>
|
||||
<translation>Es ist ein Fehler aufgetreten. Bitte kontaktieren und Sie unseren %1Support%2 oder senden Sie uns eine Email.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -4194,8 +4235,8 @@ klicken.</translation>
|
|||
<translation>Dateifehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error occurred while saving the file.</source>
|
||||
<translation>Beim Speichern der Datei ist ein Fehler aufgetreten.</translation>
|
||||
<source>An error occurred while saving the file:</source>
|
||||
<translation>Während des Speichervorgangs ist ein Fehler aufgetreten:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -5020,6 +5061,31 @@ klicken.</translation>
|
|||
<source>Save Log</source>
|
||||
<translation>Protokoll speichern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send email</source>
|
||||
<translation>Email versenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>AusweisApp2 error report - %1</source>
|
||||
<extracomment>Subject from error report mail</extracomment>
|
||||
<translation>AusweisApp2 Fehlerbericht - %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Please describe the error that occurred.</source>
|
||||
<translation>Bitte beschreiben Sie den aufgetretenen Fehler.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>You may want to attach the logfile which can be saved from the error dialog.</source>
|
||||
<translation>Im Fehlerdialog können Sie eine Logdatei speichern um sie an diese Email anzuhängen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error code</source>
|
||||
<translation>Fehlercode</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Critical errors:</source>
|
||||
<translation>Kritische Fehler:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>governikus::StepShowSelfAuthenticationDataGui</name>
|
||||
|
@ -5058,53 +5124,6 @@ klicken.</translation>
|
|||
<translation>AusweisApp2 %1 ist jetzt verfügbar - Sie haben %2. Wollen Sie die neue Version jetzt herunterladen?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>governikus::VersionInformationModel</name>
|
||||
<message>
|
||||
<source>Application Name</source>
|
||||
<translation>Anwendungsname</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Application Version</source>
|
||||
<translation>Anwendungsversion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Organization</source>
|
||||
<translation>Organisation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Organization domain</source>
|
||||
<translation>Organisation Homepage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VersionCode</source>
|
||||
<translation>Versions-Code</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System version</source>
|
||||
<translation>Systemversion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Kernel</source>
|
||||
<translation>Kernel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Architecture</source>
|
||||
<translation>Architektur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Device</source>
|
||||
<translation>Gerät</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Version</source>
|
||||
<translation>Qt-Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OpenSSL Version</source>
|
||||
<translation>OpenSSL-Version</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>governikus::WebserviceActivationContext</name>
|
||||
<message>
|
||||
|
@ -5151,10 +5170,6 @@ klicken.</translation>
|
|||
<source>Would you like to report this error?</source>
|
||||
<translation>Möchten Sie diesen Fehler melden?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/feedback/melden-sie-einen-fehler/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/feedback/melden-sie-einen-fehler/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Report now</source>
|
||||
<translation>Jetzt melden</translation>
|
||||
|
@ -5163,6 +5178,10 @@ klicken.</translation>
|
|||
<source>The connection to the browser was lost. No forwarding was executed. Please try to call the URL again manually: %1</source>
|
||||
<translation>Die Verbindung zum Browser ging verloren. Es konnte keine Weiterleitung durchgeführt werden. Bitte versuchen Sie die URL manuell aufzurufen: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/report-an-error/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/melden-sie-einen-fehler/</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>governikus::WebserviceActivationHandler</name>
|
||||
|
@ -5198,10 +5217,6 @@ klicken.</translation>
|
|||
<source>Would you like to report this error?</source>
|
||||
<translation>Möchten Sie diesen Fehler melden?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/feedback/melden-sie-einen-fehler/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/feedback/melden-sie-einen-fehler/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Report now</source>
|
||||
<translation>Jetzt melden</translation>
|
||||
|
@ -5214,6 +5229,10 @@ klicken.</translation>
|
|||
<source>You tried to start an older version (%1) of currently running application. Please open the currently running version (%2)!</source>
|
||||
<translation>Sie versuchen eine ältere Version (%1) der aktuell laufenden Anwendung zu starten. Bitte öffnen Sie die aktuell laufende Version (%2)!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>https://www.ausweisapp.bund.de/en/qa/report-an-error/</source>
|
||||
<translation>https://www.ausweisapp.bund.de/fragen-und-antworten/melden-sie-einen-fehler/</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>governikus::WorkflowAuthenticateQtGui</name>
|
||||
|
|
|
@ -3,29 +3,32 @@ set -e
|
|||
|
||||
. "$(dirname "$0")"/common.sh
|
||||
|
||||
for arg in "$@"
|
||||
for arg in "$CHECK"
|
||||
do
|
||||
case "$arg" in
|
||||
format) ENABLE_FORMAT=true;;
|
||||
docs) ENABLE_DOCS=true;;
|
||||
build) ENABLE_BUILD=true;;
|
||||
*) echo "Unknown command: $1" && exit 1
|
||||
esac
|
||||
done
|
||||
|
||||
alpine_run prepare <<-EOF
|
||||
mkdir -p /tmp/build/format
|
||||
mkdir -p /tmp/build/docs
|
||||
mkdir ~/format
|
||||
mkdir ~/docs
|
||||
mkdir ~/app
|
||||
EOF
|
||||
|
||||
|
||||
|
||||
if [ "$ENABLE_FORMAT" = true ]; then
|
||||
alpine_run format <<-EOF
|
||||
cd /tmp/build/format
|
||||
set -e
|
||||
cd ~/format
|
||||
|
||||
cmake -Dtools.only=ON ~
|
||||
cmake -Dtools.only=ON ~/src
|
||||
make format
|
||||
cd ~
|
||||
cd ~/src
|
||||
git add .
|
||||
git --no-pager diff --staged
|
||||
git diff-index --quiet HEAD
|
||||
|
@ -35,10 +38,25 @@ fi
|
|||
|
||||
if [ "$ENABLE_DOCS" = true ]; then
|
||||
alpine_run docs <<-EOF
|
||||
cd /tmp/build/docs
|
||||
set -e
|
||||
cd ~/docs
|
||||
|
||||
cmake -Dtools.only=ON ~
|
||||
cmake -Dtools.only=ON ~/src
|
||||
make sdk
|
||||
make notes
|
||||
EOF
|
||||
fi
|
||||
|
||||
|
||||
if [ "$ENABLE_BUILD" = true ]; then
|
||||
alpine_run build <<-EOF
|
||||
set -e
|
||||
cd ~/app
|
||||
|
||||
cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=$TYPE ~/src
|
||||
cmake --build .
|
||||
ctest --output-on-failure
|
||||
src/AusweisApp2 -platform offscreen --help
|
||||
EOF
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
readonly ALPINE_ROOT='/mnt/alpine'
|
||||
readonly ALPINE_USER='governikus'
|
||||
readonly ALPINE_HOME="${ALPINE_ROOT}/home/${ALPINE_USER}"
|
||||
readonly ALPINE_SRC="${ALPINE_HOME}/src"
|
||||
readonly ALPINE_CCACHE="${ALPINE_HOME}/.ccache"
|
||||
|
||||
alpine_run() {
|
||||
local folding="${1:-chroot}"
|
||||
|
|
|
@ -5,8 +5,8 @@ set -eu
|
|||
|
||||
readonly CLONE_DIR="${CLONE_DIR:-$(pwd)}"
|
||||
|
||||
MINIROOTFS_VERSION="3.8.0"
|
||||
MINIROOTFS_SHA="ae36d6ea2033131cfc649afa13d7271367c386e7a0dbd5b3d0671a2ede22a2f1"
|
||||
MINIROOTFS_VERSION="3.9.0"
|
||||
MINIROOTFS_SHA="f82efed1a80c9af86c38bed10f3541c5588453b97684d767a5a3b0f3fa0e3f09"
|
||||
|
||||
MINIROOTFS="alpine-minirootfs-${MINIROOTFS_VERSION}-x86_64.tar.gz"
|
||||
MINIROOTFS_URI="http://dl-cdn.alpinelinux.org/alpine/v${MINIROOTFS_VERSION%.*}/releases/x86_64/$MINIROOTFS"
|
||||
|
@ -30,11 +30,12 @@ ln -sf /run/shm dev/shm
|
|||
|
||||
|
||||
PACKAGES="cmake make ninja git"
|
||||
for arg in "$@"
|
||||
for arg in "$CHECK"
|
||||
do
|
||||
case "$arg" in
|
||||
format) PACKAGES="$PACKAGES uncrustify";;
|
||||
docs) PACKAGES="$PACKAGES py2-sphinx py2-setuptools";;
|
||||
build) PACKAGES="$PACKAGES clang g++ ccache binutils-gold eudev-dev pcsc-lite-dev http-parser-dev openssl-dev qt5-qtsvg-dev qt5-qtquickcontrols2-dev qt5-qtwebsockets-dev qt5-qtconnectivity-dev qt5-qtbase-dev qt5-qttools-dev";;
|
||||
*) echo "Unknown command: $1" && exit 1
|
||||
esac
|
||||
done
|
||||
|
@ -46,7 +47,11 @@ alpine_run packages root <<-EOF
|
|||
apk add $PACKAGES
|
||||
EOF
|
||||
|
||||
mount --bind "$CLONE_DIR" "${ALPINE_ROOT}/home/${ALPINE_USER}"
|
||||
mkdir ${ALPINE_SRC}
|
||||
mkdir ${ALPINE_CCACHE}
|
||||
mount --bind "$CLONE_DIR" "${ALPINE_SRC}"
|
||||
mount --bind "$HOME/.ccache" "${ALPINE_CCACHE}"
|
||||
chmod 777 "$ALPINE_CCACHE"
|
||||
|
||||
alpine_run chown root <<-EOF
|
||||
chown -R $ALPINE_USER: /home/${ALPINE_USER}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
"issueDate": "2018-07-05T12:00:00+1:00",
|
||||
"callcosts" : [
|
||||
{
|
||||
"prefixes" : ["1371", "1375"],
|
||||
|
@ -127,7 +126,7 @@
|
|||
"subjectUrls": ["https://www.bstu-formulare.de/lip"]
|
||||
},
|
||||
{
|
||||
"exclude": ["ios", "android"],
|
||||
"exclude": ["ios"],
|
||||
"shortName": {"" : "Allianz Maklerportal"},
|
||||
"address": "https://makler.allianz.de",
|
||||
"homepage": "https://makler.allianz.de",
|
||||
|
@ -155,6 +154,18 @@
|
|||
"tcTokenUrlInfo" : "",
|
||||
"subjectUrls": []
|
||||
},
|
||||
{
|
||||
"shortName": {"" : "AusweisIDent"},
|
||||
"longName": {"" : "AusweisIDent Identifizierungsdienst"},
|
||||
"shortDescription": {"": "AusweisIDent ist eine neue Lösung für Unternehmen zur schnellen und günstigen Online-Identifikation neuer Kunden mit der Online-Ausweisfunktion des Personalausweises oder des elektronischen Aufenthaltstitels."},
|
||||
"longDescription": {"": "AusweisIDent ergänzt am Markt etablierte Verfahren um die medienbruchfreie und sichere Online-Identifizierung. Nutzer weisen sich mit der Applikation und der Online-Ausweisfunktion des Personalausweises oder des elektronischen Aufenthaltstitels online aus. Das Identifizierungsverfahren wurde von der Bundesdruckerei gemeinsam mit Governikus entwickelt. AusweisIDent eignet sich für die Identifizierung von Personen für eine Web-Anwendung. Über eine Zwei-Faktor-Authentisierung durch den Kunden werden höchste Sicherheitsanforderungen bei der Kundenregistrierung erfüllt. Die Identitätsprüfungen erfolgen gesetzeskonform nach demGesetz zur Förderung der elektronischen Verwaltung (eGovG), dem Gesetz über das Aufspüren von Gewinnen aus schweren Straftaten (GWG), dem Telekommunikationsgesetz (TKG) sowie nach Bundesdatenschutzgesetz (BDSG) und der EUDatenschutzgrundverordnung (EU-DSGVO)."},
|
||||
"address": "https://www.ausweisident.de/",
|
||||
"homepage": "https://www.ausweisident.de/",
|
||||
"image": "ausweisident_image.jpg",
|
||||
"icon": "ausweisident_icon.png",
|
||||
"category": "other",
|
||||
"subjectUrls": ["https://www.ausweisident.de"]
|
||||
},
|
||||
{
|
||||
"exclude": ["ios"],
|
||||
"shortName": {"" : "BAföG Berlin"},
|
||||
|
@ -275,7 +286,7 @@
|
|||
"exclude": ["ios"],
|
||||
"shortName": {"" : "BAföG Online Sachsen"},
|
||||
"address": "https://fs.egov.sachsen.de/formserv/findform?shortname=bafoeg&formtecid=11&areashortname=SMWK_bafoeg",
|
||||
"homepage": "http://www.studieren.sachsen.de/",
|
||||
"homepage": "https://www.studieren.sachsen.de/",
|
||||
"phone": "+49 351 564-1080",
|
||||
"email": "info@sk.sachsen.de",
|
||||
"postalAddress": "Sächsische Staatskanzlei<br/>Redaktion Amt24 / Bürgerbüro<br/>01095 Dresden",
|
||||
|
@ -293,17 +304,6 @@
|
|||
"postalAddress": "Ministerium für Soziales, Gesundheit, Wissenschaft und Gleichstellung des Landes Schleswig-Holstein<br/>Abteilung VIII 5<br/>Düsternbrooker Weg 104<br/>24105 Kiel",
|
||||
"category": "citizen"
|
||||
},
|
||||
{
|
||||
"exclude": ["ios", "android"],
|
||||
"shortName": {"" : "bahn.de"},
|
||||
"address": "https://www.bahn.de/p/view/meinebahn/login.shtml",
|
||||
"homepage": "https://www.bahn.de",
|
||||
"phone": "+49 1806 - 996633",
|
||||
"email": "reiseportal@bahn.de",
|
||||
"postalAddress": "DB Vertrieb GmbH<br/>Stephensonstraße 1<br/>60326 Frankfurt am Main",
|
||||
"category": "other",
|
||||
"subjectUrls": ["https://www.bahn.de/"]
|
||||
},
|
||||
{
|
||||
"shortName": {"" : "Beantragung Schwerbehindertenausweis Bayern"},
|
||||
"longDescription": {"": "Einen Schwerbehindertenantrag können Sie bei der Landesbehörde Zentrum Bayern Familie und Soziales (ZBFS) mit der Online-Ausweisfunktion komplett papierlos stellen.<br/>Der papierlose Antrag ist ein bedeutender Schritt auf dem Weg zur digitalen Verwaltung – online, schnell und unkompliziert.<br/>Das Online-Verfahren hat weitere Vorteile. Gerade für sehbehinderte Menschen ist die papiergebundene Schriftform ein Hindernis. Digitale Angebote bieten ihnen die Chance, Behördenangelegenheiten ein Stück weit selbständiger erledigen zu können.<br/>Zu 100 Prozent digital – ein bisschen weniger lästiger Papierkram. Digitalisierung ist somit ein Beitrag zur Inklusion."},
|
||||
|
@ -428,7 +428,7 @@
|
|||
"shortDescription": {"": "Anträge an den Kreis Minden-Lübbecke online erfassen."},
|
||||
"longDescription": {"": "In unserem Portal können Sie Ihren Antrag an den Kreis Minden-Lübbecke direkt online erfassen und elektronisch übermitteln."},
|
||||
"address": "https://www.buergerserviceportal.nrw/krz/mindenluebbecke",
|
||||
"homepage": "http://www.minden-luebbecke.de/",
|
||||
"homepage": "https://www.minden-luebbecke.de/",
|
||||
"phone": "+49 571 807-0",
|
||||
"email": "info@minden-luebbecke.de",
|
||||
"postalAddress": "Kreis Minden-Lübbecke<br/>Portastraße 13<br/>32423 Minden",
|
||||
|
@ -445,7 +445,7 @@
|
|||
"shortDescription": {"": "Anträge online erfassen und an die Verwaltung weiterleiten."},
|
||||
"longDescription": {"": "Das Bürgerservice-Portal bietet die Möglichkeit, Anträge an die Verwaltung der Stadt Lage online zu erfassen und elektronisch zur weiteren Bearbeitung weiterzuleiten."},
|
||||
"address": "https://www.buergerserviceportal.nrw/krz/lage",
|
||||
"homepage": "http://www.lage.de/",
|
||||
"homepage": "https://www.lage.de/",
|
||||
"phone": "+49 5232/601300",
|
||||
"email": "Buergerbuero@lage.de",
|
||||
"postalAddress": "Bürgerbüro Lage<br/>Bergstraße 21<br/>32791 Lage",
|
||||
|
@ -495,10 +495,10 @@
|
|||
"subjectUrls": ["https://www.buergerserviceportal.de"]
|
||||
},
|
||||
{
|
||||
"exclude": ["ios", "android"],
|
||||
"exclude": ["ios"],
|
||||
"shortName": {"" : "CosmosDirekt Kundenportal meinCosmosDirekt"},
|
||||
"longDescription": {"": "Mit der Online-Ausweisfunktion des Personalausweises können Sie sich einfach und sicher am Kundenportal ,mein Cosmos-Direkt' registrieren und anmelden. Im Portal haben Sie die Möglichkeit Ihre Versicherungen zu verwalten. Sie können online einen Antrag für ein Tagesgeldkonto stellen oder auch schnell und einfach Ihre persönlichen Daten, z.B. Ihre Adresse, ändern."},
|
||||
"address": "https://www.cosmosdirekt.de/services/mcd-info",
|
||||
"address": "https://www.cosmosdirekt.de/meincosmosdirekt-registrierung/",
|
||||
"homepage": "https://www.cosmosdirekt.de/",
|
||||
"phone": "+49 681-9 66 68 00",
|
||||
"email": "info@cosmosdirekt.de",
|
||||
|
@ -535,20 +535,6 @@
|
|||
"tcTokenUrlInfo" : "Address is faulty",
|
||||
"subjectUrls": ["https://secure6.datev.de"]
|
||||
},
|
||||
{
|
||||
"exclude": ["ios"],
|
||||
"shortName": {"" : "Deutsche Post AG - POSTIDENT Verfahren"},
|
||||
"longName": {"" : "Deutsche Post AG - POSTIDENT Verfahren"},
|
||||
"shortDescription": {"": "Durch das Onlineverfahren POSTIDENT mit dem neuem Personalausweis, können Sie sich schnell und einfach online mit Ihrem neuen Personalausweis identifizieren."},
|
||||
"longDescription": {"": "Durch das Onlineverfahren POSTIDENT mit dem neuem Personalausweis, können Sie sich schnell und einfach online mit Ihrem neuen Personalausweis z.B. zur Eröffnung eines Tagesgeldkontos identifizieren: Sie werden hierzu von Ihrer Bank automatisch auf das POSTIDENT Portal geleitet und können sich mithilfe Ihres neuen Personalausweises mit freigeschalteter Online-Ausweisfunktion, einem Kartenlesegerät sowie der AusweisApp2 in wenigen Minuten sicher identifizieren."},
|
||||
"address": "https://www.deutschepost.de/de/p/postident/identifizierungsverfahren/postident-npa.html",
|
||||
"homepage": "https://www.deutschepost.de/de/p/postident.html",
|
||||
"email": "info@deutschepost.de",
|
||||
"postalAddress": "Deutsche Post AG<br/>Charles-de-Gaulle-Str. 20<br/>53113 Bonn",
|
||||
"image": "DeutschePost_image.jpg",
|
||||
"icon": "DeutschePost_icon.png",
|
||||
"category": "other"
|
||||
},
|
||||
{
|
||||
"shortName": {"" : "Deutsche Rentenversicherung"},
|
||||
"longDescription": {"": "Mit der Online-Ausweisfunktion im neuen Personalausweis können Sie ...<br/>- auf Informationen Ihres Rentenkontos im Kundenbereich ,eService' sicher zugreifen (z. B. Versicherungsverlauf und Beitragsrechnung),<br/>- Ihre Rentenauskunft online abrufen,<br/>- schnell und einfach Ihre persönlichen Daten ändern (z. B. Ihre Adresse und Bankverbindung)."},
|
||||
|
@ -562,7 +548,7 @@
|
|||
"subjectUrls": ["https://www.eservice-drv.de"]
|
||||
},
|
||||
{
|
||||
"exclude": ["ios", "android"],
|
||||
"exclude": ["ios"],
|
||||
"shortName": {"" : "eAntrag der Investitionsbank Berlin (IBB)"},
|
||||
"longDescription": {"": "Im Kundenportal der Investitionsbank Berlin können Sie verschiedene Förder-Produkte durchgängig elektronisch beantragen:<br/>- Berlin Kapital<br/>- IBB Familienbaudarlehen<br/>- IBB Wohnraum modernisieren<br/>- KMU-Fonds über 25.000 Euro<br/>- Liquiditätshilfen BERLIN<br/>- Mikrokredit aus dem KMU-Fonds<br/>- Pro FIT (Projektvorschlagsphase)<br/>- Pro FIT (Frühphasenfinanzierung)<br/>Für die rechtsverbindliche, fristwahrende Antragstellung der Produkte<br/>- GRW<br/>- Innovationsassistent<br/>- PFI - Gemeinschaft<br/>- PFI - KMU<br/>- PFI - Netzwerk<br/>- ProFIT (Projektantragsphase)<br/>gilt aus verwaltungsrechtlichen Anforderungen das Schriftformerfordernis: Die elektronische Antragstellung ist zwingend nachträglich schriftlich zu bestätigen.<br/>Mit der Online-Ausweisfunktion können Sie sich bequem und sicher elektronisch legitimieren und müssen dadurch Ihre Identität weder per Postident-Verfahren noch persönlich vor Ort nachweisen.<br/>Nach Ihrer Legitimierung können Sie über eine persönliche Dokumentenablage die rechtsverbindliche Kommunikation mit Ihrem IBB-Ansprechpartner online – und unabhängig von Öffnungszeiten oder Postwegen – über das Kundenportal erledigen."},
|
||||
"address": "https://www.ibb.de/de/service/eantrag/eantrag.html",
|
||||
|
@ -616,9 +602,9 @@
|
|||
"subjectUrls": []
|
||||
},
|
||||
{
|
||||
"exclude": ["ios", "android"],
|
||||
"exclude": ["ios"],
|
||||
"shortName": {"" : "Führungszeugnis und Auskunft aus dem Gewerbezentralregister"},
|
||||
"longDescription": {"": "Sie benötigen ein Führungszeugnis oder eine Auskunft aus dem Gewerbezentralregister? Mit dem Personalausweis im Scheckkartenformat können Sie einen Behördengang sparen. Weitere Voraussetzungen sind die freigeschaltete Online-Ausweisfunktion und ein passendes Kartenlesegerät für Ihren Computer. Auf diese Weise kann eindeutig identifiziert werden, wer den Antrag stellt. Ausländische Mitbürger, die keinen deutschen Personalausweis besitzen, können in gleicher Weise die entsprechende Funktion ihres elektronischen Aufenthaltstitels nutzen.<br/>Neben Führungszeugnissen können auch Auskünfte aus dem Gewerbezentralregister über das neue Online-Portal des BfJ beantragt werden. Solche Auskünfte benötigen Unternehmen, die sich in Ausschreibungsverfahren um öffentliche Aufträge bewerben, recht häufig. Auch hier kann das Online-Verfahren den Aufwand erheblich senken."},
|
||||
"longDescription": {"": "Sie benötigen ein Führungszeugnis oder eine Auskunft aus dem Gewerbezentralregister? Mit dem Personalausweis im Scheckkartenformat können Sie einen Behördengang sparen. Weitere Voraussetzungen sind die freigeschaltete Online-Ausweisfunktion und ein passender Kartenleser für Ihren Computer. Auf diese Weise kann eindeutig identifiziert werden, wer den Antrag stellt. Ausländische Mitbürger, die keinen deutschen Personalausweis besitzen, können in gleicher Weise die entsprechende Funktion ihres elektronischen Aufenthaltstitels nutzen.<br/>Neben Führungszeugnissen können auch Auskünfte aus dem Gewerbezentralregister über das neue Online-Portal des BfJ beantragt werden. Solche Auskünfte benötigen Unternehmen, die sich in Ausschreibungsverfahren um öffentliche Aufträge bewerben, recht häufig. Auch hier kann das Online-Verfahren den Aufwand erheblich senken."},
|
||||
"address": "https://www.fuehrungszeugnis.bund.de/",
|
||||
"homepage": "https://www.bundesjustizamt.de",
|
||||
"phone": "+49 228 99 410-40",
|
||||
|
@ -716,7 +702,7 @@
|
|||
{
|
||||
"exclude": ["ios"],
|
||||
"shortName": {"" : "Login Meine VBL"},
|
||||
"longDescription": {"": "Bei der VBL können Sie sich mit dem Personalausweis am Kundenportal ,Meine VBL' registrieren und anmelden. Dadurch entfällt der Postversand eines Freischaltcodes - Sie sparen Zeit. Im Kundenkonto können Sie Ihre Vertragsdaten und Ihre persönlichen Daten einsehen und weitere Online-Dienste nutzen, z. B.<br/>- Rentenantrag stellen,<br/>- Beitragserstattung beantragen,<br/>- Kontaktdaten ändern,<br/>- persönliche Mitteilungen von der VBL erhalten."},
|
||||
"longDescription": {"": "Bei der VBL können Sie sich mit dem Personalausweis am Kundenportal ,Meine VBL' anmelden. Im Kundenkonto können Sie Ihre Vertragsdaten und Ihre persönlichen Daten einsehen und weitere Online-Dienste nutzen, z. B.<br/>- Rentenantrag stellen,<br/>- Beitragserstattung beantragen,<br/>- Kontaktdaten ändern,<br/>- persönliche Mitteilungen von der VBL erhalten."},
|
||||
"address": "https://www.vbl.de/de/meine_vbl",
|
||||
"homepage": "https://www.vbl.de/",
|
||||
"phone": "+49 721 93 98 93 1",
|
||||
|
@ -767,10 +753,10 @@
|
|||
},
|
||||
{
|
||||
"shortName": {"" : "Selbstauskunft - „Meine Daten einsehen“"},
|
||||
"longDescription": {"": "Die AusweisApp2 verfügt über die Funktion \"Meine Daten einsehen\". Mit dieser Funktion können die auf dem Personalausweis bzw. dem elektronischen Aufenthaltstitel gespeicherten Daten ausgelesen und angezeigt werden. Hierbei sprechen wir auch von einer sogenannten Selbstauskunft.<br/><br/>Sobald Sie die AusweisApp2 gestartet und ein geeignetes Kartenlesegerät installiert bzw. ein Android-Smartphone verbunden haben, können Sie diese Funktion unter dem Menüpunkt \"Ausweisen\" aufrufen. (Auf Mobilgeräten finden Sie die Ausweis-Auskunft übrigens auch direkt auf der Startseite sowie im Menüeintrag „Ausweisen“.)<br/><br/>Nach Ihrer PIN-Eingabe und erfolgreicher Datenübertragung werden die Daten in der AusweisApp2 dargestellt.<br/><br/>Bei der Selbstauskunft handelt es sich um einen reinen Demonstrationsdienst. Die ausgelesenen Daten werden lediglich zur Anzeige gebracht und nicht weitergegeben.<br/><br/>Bitte beachten Sie, dass Sie auch für diesen Vorgang eine Internetverbindung benötigen. Dies hat folgenden Hintergrund: Der Zugriff auf die Daten des Personalausweises bzw. des elektronischen Aufenthaltstitels ist nur möglich, wenn derjenige, der auf die Daten zugreifen möchte sich selbst zunächst eindeutig identifiziert. Dies geschieht über das sog. Berechtigungszertifikat. Es wird Ihnen immer angezeigt, wer auf Ihre Daten zugreifen möchte. Die Erlaubnis, ein Berechtigungszertifikat zu erhalten, wird einen Diensteanbieter auf Antrag und nach Prüfung bei der Vergabestelle für Berechtigungszertifikate beim Bundesverwaltungsamt erteilt. Um das technische Berechtigungszertifikat anzuzeigen und darüber hinaus eine Gültigkeitsprüfung des Ausweisdokuments durchführen zu können, ist eine Internetverbindung zwingend erforderlich. Aus diesem Grund spricht man auch von der Online-Ausweisfunktion."},
|
||||
"longDescription": {"": "Die AusweisApp2 verfügt über die Funktion \"Meine Daten einsehen\". Mit dieser Funktion können die auf dem Personalausweis bzw. dem elektronischen Aufenthaltstitel gespeicherten Daten ausgelesen und angezeigt werden. Hierbei sprechen wir auch von einer sogenannten Selbstauskunft.<br/><br/>Sobald Sie die AusweisApp2 gestartet und ein geeigneter Kartenleser installiert bzw. ein Android-Smartphone verbunden haben, können Sie diese Funktion unter dem Menüpunkt \"Ausweisen\" aufrufen. (Auf Mobilgeräten finden Sie die Ausweis-Auskunft übrigens auch direkt auf der Startseite sowie im Menüeintrag „Ausweisen“.)<br/><br/>Nach Ihrer PIN-Eingabe und erfolgreicher Datenübertragung werden die Daten in der AusweisApp2 dargestellt.<br/><br/>Bei der Selbstauskunft handelt es sich um einen reinen Demonstrationsdienst. Die ausgelesenen Daten werden lediglich zur Anzeige gebracht und nicht weitergegeben.<br/><br/>Bitte beachten Sie, dass Sie auch für diesen Vorgang eine Internetverbindung benötigen. Dies hat folgenden Hintergrund: Der Zugriff auf die Daten des Personalausweises bzw. des elektronischen Aufenthaltstitels ist nur möglich, wenn derjenige, der auf die Daten zugreifen möchte sich selbst zunächst eindeutig identifiziert. Dies geschieht über das sog. Berechtigungszertifikat. Es wird Ihnen immer angezeigt, wer auf Ihre Daten zugreifen möchte. Die Erlaubnis, ein Berechtigungszertifikat zu erhalten, wird einen Diensteanbieter auf Antrag und nach Prüfung bei der Vergabestelle für Berechtigungszertifikate beim Bundesverwaltungsamt erteilt. Um das technische Berechtigungszertifikat anzuzeigen und darüber hinaus eine Gültigkeitsprüfung des Ausweisdokuments durchführen zu können, ist eine Internetverbindung zwingend erforderlich. Aus diesem Grund spricht man auch von der Online-Ausweisfunktion."},
|
||||
"address": "https://www.ausweisapp.bund.de/ausweisapp2/ausprobieren-meine-daten-einsehen/",
|
||||
"homepage": "https://www.ausweisapp.bund.de/",
|
||||
"phone": "+49 1805 - 348743",
|
||||
"phone": "+49 421 - 204 95 995",
|
||||
"email": "support@ausweisapp.de",
|
||||
"postalAddress": "Governikus GmbH & Co. KG<br/>- im Auftrag des Bundesministeriums des Innern, für Bau und Heimat -<br/>Hochschulring 4<br/>D-28359 Bremen",
|
||||
"image": "Selbstauskunft.jpg",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
{
|
||||
"VendorId": "0x0000",
|
||||
"ProductId": "0x0000",
|
||||
"Name": "Smartphone als Kartenlesegerät",
|
||||
"Name": "Smartphone als Kartenleser",
|
||||
"Pattern": "^NFC.*",
|
||||
"Icon": "img_RemoteReader.png",
|
||||
"IconWithNPA": "img_RemoteReader_mit_ausweis.png",
|
||||
|
@ -181,7 +181,7 @@
|
|||
"VendorId": "0x04E6",
|
||||
"ProductId": "0x512B",
|
||||
"Name": "SDI011 Contactless Reader",
|
||||
"Pattern": "SDI011 (USB )?(Smart Card|Contactless) Reader",
|
||||
"Pattern": "SDI011 Contactless Reader|SDI011 USB Smart Card Reader(\\(1\\)|\\(2\\))",
|
||||
"Icon": "img_Identive_SDI011.png",
|
||||
"IconWithNPA": "img_Identive_SDI011_mit_ausweis.png",
|
||||
"Drivers":
|
||||
|
@ -199,21 +199,16 @@
|
|||
[
|
||||
{
|
||||
"Platforms": [{"os": "win", "max": "6.1"}],
|
||||
"DE": "Bitte beachten Sie, dass das Kartenlesegerät nur mit der SDI011-generic-version funktioniert. Nach der Installation ist ein Neustart erforderlich.",
|
||||
"DE": "Bitte beachten Sie, dass der Kartenleser nur mit der SDI011-generic-version funktioniert. Nach der Installation ist ein Neustart erforderlich.",
|
||||
"EN": "Please note that the card reader only works with the SDI011-generic-version. A reboot is required after the installation of the driver."
|
||||
},
|
||||
{
|
||||
"Platforms":[{"os": "win", "min": "6.2"}],
|
||||
"DE": "Bitte beachten Sie, dass das Kartenlesegerät nur mit der SDI011-nPA-version funktioniert. Nach der Installation ist ein Neustart erforderlich.",
|
||||
"DE": "Bitte beachten Sie, dass der Kartenleser nur mit der SDI011-nPA-version funktioniert. Nach der Installation ist ein Neustart erforderlich.",
|
||||
"EN": "Please note that the card reader only works with the SDI011-nPA-version. A reboot is required after the installation of the driver."
|
||||
},
|
||||
{
|
||||
"Platforms": [{"os": "mac", "max": "10.12"}],
|
||||
"DE": "Der Status des Kartenlesegeräts wird nach der Treiberinstallation und einem Neustart zwar als 'Treiber installiert' angezeigt, allerdings tritt bei der PIN-Eingabe ein Protokollfehler auf.",
|
||||
"EN": "Once the driver is installed and the system is re-booted, the card reader state will be shown as 'Driver installed'. However, upon entering the PIN a protocol error occurs."
|
||||
},
|
||||
{
|
||||
"Platforms": [{"os": "mac", "min":"10.13"}],
|
||||
"Platforms": [{"os": "mac"}],
|
||||
"DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.",
|
||||
"EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system."
|
||||
}
|
||||
|
@ -242,15 +237,16 @@
|
|||
[
|
||||
{
|
||||
"Platforms": [{"os": "win"}],
|
||||
"DE": "Das Kartenlesegerät funktioniert nur mit der SCL011-nPA-version. Nach der Installation ist ein Neustart erforderlich.",
|
||||
"DE": "Der Kartenleser funktioniert nur mit der SCL011-nPA-version. Nach der Installation ist ein Neustart erforderlich.",
|
||||
"EN": "The cardreader works only with the SCL011-nPA-version. A reboot is required after the installation of the driver."
|
||||
},
|
||||
{
|
||||
"Platforms": [{"os": "mac"}],
|
||||
"DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"DE": "Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
}
|
||||
]
|
||||
],
|
||||
"Internal information": "Unter macOS funktioniert nur NFC A. Reader wird als unterstützt markiert, da zertifiziert."
|
||||
},
|
||||
|
||||
{
|
||||
|
@ -313,7 +309,7 @@
|
|||
"VendorId": "0x04E6",
|
||||
"ProductId": "0x5720",
|
||||
"Name": "Identiv Cloud 4700 F",
|
||||
"Pattern": "(Identiv CLOUD 4700 F Contact(less)? Reader( 0| 1)|Identiv uTrust 4700 F Dual Interface Reader)",
|
||||
"Pattern": "(Identive CLOUD 4700 F Contactless Reader( 0| 1)|Identiv uTrust 4700 F Dual Interface Reader\\(2\\))",
|
||||
"Icon": "img_Identive_Cloud_4700_F.png",
|
||||
"IconWithNPA": "img_Identive_Cloud_4700_F_mit_ausweis.png",
|
||||
"Drivers":
|
||||
|
@ -335,7 +331,7 @@
|
|||
[
|
||||
{
|
||||
"Platforms": [{"os": "win"}, {"os": "mac"}],
|
||||
"DE":"Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"DE":"Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN":"The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
}
|
||||
]
|
||||
|
@ -345,7 +341,7 @@
|
|||
"VendorId": "0x04E6",
|
||||
"ProductId": "0x5724",
|
||||
"Name": "Identiv Cloud 4701 F",
|
||||
"Pattern": "(Identiv CLOUD 4701 F Contact(less)? Reader( 0| 1)|Identiv uTrust 4701 F Dual Interface Reader)",
|
||||
"Pattern": "(Identiv CLOUD 4701 F Contactless Reader( 0| 1)|Identiv uTrust 4701 F Dual Interface Reader)",
|
||||
"Icon": "img_Identive_Cloud_4701_F.png",
|
||||
"IconWithNPA": "img_Identive_Cloud_4701_F_mit_ausweis.png",
|
||||
"Drivers":
|
||||
|
@ -367,7 +363,7 @@
|
|||
[
|
||||
{
|
||||
"Platforms": [{"os": "win"}, {"os": "mac"}],
|
||||
"DE":"Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"DE":"Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN":"The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
}
|
||||
]
|
||||
|
@ -395,7 +391,7 @@
|
|||
[
|
||||
{
|
||||
"Platforms": [{"os": "win"}],
|
||||
"DE":"Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"DE":"Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN":"The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
},
|
||||
{
|
||||
|
@ -410,7 +406,7 @@
|
|||
"VendorId": "0x072F",
|
||||
"ProductId": "0x223B",
|
||||
"Name": "ACS ACR1252U",
|
||||
"Pattern": "ACS ACR1252 1S CL Reader PICC 0|ACS ACR1252 Dual Reader(\\(1\\)|\\(2\\))",
|
||||
"Pattern": "ACS ACR1252 1S CL Reader PICC 0|ACS ACR1252 Dual Reader\\(2\\)",
|
||||
"Icon": "img_ACS_ACR1252U.png",
|
||||
"IconWithNPA": "img_ACS_ACR1252U_mit_ausweis.png",
|
||||
"Drivers":
|
||||
|
@ -428,7 +424,7 @@
|
|||
[
|
||||
{
|
||||
"Platforms": [{"os": "win"}],
|
||||
"DE":"Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"DE":"Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN":"The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
},
|
||||
{
|
||||
|
@ -465,7 +461,12 @@
|
|||
"Information":
|
||||
[
|
||||
{
|
||||
"Platforms":[{"os": "win"}, {"os": "mac"}],
|
||||
"Platforms":[{"os": "win"}],
|
||||
"DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Beachten Sie bei der Auswahl, dass nur der \"X-CHIP WINDOWS BU & RU driver\" funktioniert.",
|
||||
"EN": "It is necessary to install the drivers from the manufacturer. Please note that only the driver named \"X-CHIP WINDOWS BU & RU driver\" works with this card reader."
|
||||
},
|
||||
{
|
||||
"Platforms":[{"os": "mac"}],
|
||||
"DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.",
|
||||
"EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system."
|
||||
}
|
||||
|
@ -486,16 +487,26 @@
|
|||
"URL": "https://www.hidglobal.de/drivers"
|
||||
},
|
||||
{
|
||||
"Platforms": [{"os": "mac"}],
|
||||
"Platforms": [{"os": "mac", "min": "10.12"}],
|
||||
"URL": "https://www.hidglobal.de/drivers"
|
||||
}
|
||||
],
|
||||
"Information":
|
||||
[
|
||||
{
|
||||
"Platforms":[{"os": "win"}, {"os": "mac"}],
|
||||
"DE":"Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN":"The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
"Platforms":[{"os": "win"}],
|
||||
"DE": "Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
},
|
||||
{
|
||||
"Platforms":[{"os": "mac", "max": "10.11"}],
|
||||
"DE": "Der Kartenleser funktioniert nicht mit dem installierten CCID Treiber des Systems. Es existiert kein Treiber vom Hersteller.",
|
||||
"EN": "The card reader is not compatible with the installed CCID driver of the operating system. The manufacturer does not provide a driver."
|
||||
},
|
||||
{
|
||||
"Platforms":[{"os": "mac", "min": "10.12"}],
|
||||
"DE": "Der Kartenleser funktioniert mit dem systemseitig installierten Treiber.",
|
||||
"EN": "The card reader is compatible with the installed system driver."
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -553,7 +564,12 @@
|
|||
"Information":
|
||||
[
|
||||
{
|
||||
"Platforms":[{"os": "win"}, {"os": "mac"}],
|
||||
"Platforms":[{"os": "win"}],
|
||||
"DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite. Beachten Sie bei der Auswahl, dass nur der \"X-CHIP WINDOWS BU & RU driver\" funktioniert.",
|
||||
"EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system. Please note that only the driver named \"X-CHIP WINDOWS BU & RU driver\" works with this card reader."
|
||||
},
|
||||
{
|
||||
"Platforms":[{"os": "mac"}],
|
||||
"DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.",
|
||||
"EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system."
|
||||
}
|
||||
|
@ -564,7 +580,7 @@
|
|||
"VendorId": "0x076B",
|
||||
"ProductId": "0x5422",
|
||||
"Name": "OMNIKEY 5422",
|
||||
"Pattern": "HID Global OMNIKEY 5422(CL)? Smartcard Reader 0|HID Global OMNIKEY Smartcard Reader (\\(1\\)|\\(2\\))",
|
||||
"Pattern": "HID Global OMNIKEY 5422CL Smartcard Reader 0|HID Global OMNIKEY Smartcard Reader (\\(1\\)|\\(2\\))",
|
||||
"Icon": "img_HID_Omnikey_542x.png",
|
||||
"IconWithNPA": "img_HID_Omnikey_542x_mit_ausweis.png",
|
||||
"Drivers":
|
||||
|
@ -578,12 +594,12 @@
|
|||
[
|
||||
{
|
||||
"Platforms": [{"os": "win"}],
|
||||
"DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"DE": "Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
},
|
||||
{
|
||||
"Platforms": [{"os": "mac"}, {"max": "10.12"}],
|
||||
"DE": "Das Kartenlesegerät funktioniert nicht mit dem systemseitig installierten Treiber. Es existiert kein Treiber vom Hersteller",
|
||||
"DE": "Der Kartenleser funktioniert nicht mit dem systemseitig installierten Treiber. Es existiert kein Treiber vom Hersteller",
|
||||
"EN": "The card reader not operates with the driver automatically installed by the system. There is no driver from the manufacturer"
|
||||
}
|
||||
]
|
||||
|
@ -629,18 +645,18 @@
|
|||
[
|
||||
{
|
||||
"Platforms": [{"os": "win"}],
|
||||
"URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#windows10"
|
||||
"URL": "https://supportportal.gemalto.com/csm?id=kb_article_view&sys_kb_id=8f07753f37854fc0cc47261953990e04&sysparm_article=KB0016422"
|
||||
},
|
||||
{
|
||||
"Platforms": [{"os": "mac"}],
|
||||
"URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#macosxdrivers"
|
||||
"URL": "https://supportportal.gemalto.com/csm?id=kb_article_view&sys_kb_id=43a9b1f337c54fc0cc47261953990e8c&sysparm_article=KB0016424"
|
||||
}
|
||||
],
|
||||
"Information":
|
||||
[
|
||||
{
|
||||
"Platforms":[{"os": "win"}, {"os":"mac"}],
|
||||
"DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"DE": "Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
}
|
||||
]
|
||||
|
@ -657,18 +673,18 @@
|
|||
[
|
||||
{
|
||||
"Platforms": [{"os": "win"}],
|
||||
"URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#windows10"
|
||||
"URL": "https://supportportal.gemalto.com/csm?id=kb_article_view&sys_kb_id=8f07753f37854fc0cc47261953990e04&sysparm_article=KB0016422"
|
||||
},
|
||||
{
|
||||
"Platforms": [{"os": "mac"}],
|
||||
"URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#macosxdrivers"
|
||||
"URL": "https://supportportal.gemalto.com/csm?id=kb_article_view&sys_kb_id=43a9b1f337c54fc0cc47261953990e8c&sysparm_article=KB0016424"
|
||||
}
|
||||
],
|
||||
"Information":
|
||||
[
|
||||
{
|
||||
"Platforms": [{"os": "win"}, {"os": "mac"}],
|
||||
"DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"DE": "Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
}
|
||||
]
|
||||
|
@ -697,7 +713,7 @@
|
|||
},
|
||||
{
|
||||
"Platforms": [{"os": "mac"}],
|
||||
"DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"DE": "Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
}
|
||||
]
|
||||
|
@ -726,7 +742,7 @@
|
|||
},
|
||||
{
|
||||
"Platforms": [{"os": "mac"}],
|
||||
"DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"DE": "Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.",
|
||||
"EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required."
|
||||
}
|
||||
]
|
||||
|
@ -783,7 +799,7 @@
|
|||
[
|
||||
{
|
||||
"Platforms": [{"os": "win"}, {"os": "mac"}],
|
||||
"DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Es ist kein Treiber vom Hersteller vorhanden.",
|
||||
"DE": "Der Kartenleser funktioniert mit dem systemseitig installierten Treiber. Es ist kein Treiber vom Hersteller vorhanden.",
|
||||
"EN": "The card reader operates with the driver automatically installed by the system. There is no driver from the manufacturer."
|
||||
}
|
||||
]
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany
|
||||
* \copyright Copyright (c) 2014-2019 Governikus GmbH & Co. KG, Germany
|
||||
*/
|
||||
|
||||
#include "CommandLineParser.h"
|
||||
|
@ -29,6 +29,7 @@ CommandLineParser::CommandLineParser()
|
|||
: mParser()
|
||||
, mOptionKeepLog(QStringLiteral("keep"), QStringLiteral("Keep log file."))
|
||||
, mOptionNoLogFile(QStringLiteral("no-logfile"), QStringLiteral("Disable log file."))
|
||||
, mOptionNoLogHandler(QStringLiteral("no-loghandler"), QStringLiteral("Disable default log handler."))
|
||||
, mOptionShowWindow(QStringLiteral("show"), QStringLiteral("Show window on startup."))
|
||||
, mOptionProxy(QStringLiteral("no-proxy"), QStringLiteral("Disable system proxy."))
|
||||
, mOptionUi(QStringLiteral("ui"), QStringLiteral("Use given UI plugin."), UILoader::getInstance().getDefault().join(QLatin1Char(',')))
|
||||
|
@ -51,6 +52,7 @@ void CommandLineParser::addOptions()
|
|||
|
||||
mParser.addOption(mOptionKeepLog);
|
||||
mParser.addOption(mOptionNoLogFile);
|
||||
mParser.addOption(mOptionNoLogHandler);
|
||||
|
||||
#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) && !defined(Q_OS_WINRT)
|
||||
mParser.addOption(mOptionShowWindow);
|
||||
|
@ -83,6 +85,11 @@ void CommandLineParser::parse(QCoreApplication* pApp)
|
|||
logHandler->setLogfile(false);
|
||||
}
|
||||
|
||||
if (mParser.isSet(mOptionNoLogHandler))
|
||||
{
|
||||
logHandler->setUseHandler(false);
|
||||
}
|
||||
|
||||
#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) && !defined(Q_OS_WINRT)
|
||||
if (mParser.isSet(mOptionShowWindow))
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* \brief Provides and parses command line options.
|
||||
*
|
||||
* \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany
|
||||
* \copyright Copyright (c) 2014-2019 Governikus GmbH & Co. KG, Germany
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
@ -18,6 +18,7 @@ class CommandLineParser
|
|||
QCommandLineParser mParser;
|
||||
const QCommandLineOption mOptionKeepLog;
|
||||
const QCommandLineOption mOptionNoLogFile;
|
||||
const QCommandLineOption mOptionNoLogHandler;
|
||||
const QCommandLineOption mOptionShowWindow;
|
||||
const QCommandLineOption mOptionProxy;
|
||||
const QCommandLineOption mOptionUi;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* \copyright Copyright (c) 2016-2018 Governikus GmbH & Co. KG, Germany
|
||||
* \copyright Copyright (c) 2016-2019 Governikus GmbH & Co. KG, Germany
|
||||
*/
|
||||
|
||||
#include "ActivationContext.h"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* \copyright Copyright (c) 2016-2018 Governikus GmbH & Co. KG, Germany
|
||||
* \copyright Copyright (c) 2016-2019 Governikus GmbH & Co. KG, Germany
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany
|
||||
* \copyright Copyright (c) 2014-2019 Governikus GmbH & Co. KG, Germany
|
||||
*/
|
||||
|
||||
#include "ActivationHandler.h"
|
||||
|
@ -66,6 +66,11 @@ const QVector<ActivationHandler*>& ActivationHandler::getInstances()
|
|||
}
|
||||
|
||||
|
||||
void ActivationHandler::onApplicationActivated()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool ActivationHandler::isPlugIn(const QJsonObject& pJson)
|
||||
{
|
||||
return pJson.value(QStringLiteral("IID")).toString() == QLatin1String("governikus.ActivationHandler");
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany
|
||||
* \copyright Copyright (c) 2014-2019 Governikus GmbH & Co. KG, Germany
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
@ -69,6 +69,9 @@ class ActivationHandler
|
|||
virtual bool start() = 0;
|
||||
virtual void stop() = 0;
|
||||
|
||||
public Q_SLOTS:
|
||||
virtual void onApplicationActivated();
|
||||
|
||||
Q_SIGNALS:
|
||||
void fireShowUserInformation(const QString& pErrorMessage = QString());
|
||||
void fireShowUiRequest(UiModule pModule);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany
|
||||
* \copyright Copyright (c) 2014-2019 Governikus GmbH & Co. KG, Germany
|
||||
*/
|
||||
|
||||
#include "CustomSchemeActivationContext.h"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany
|
||||
* \copyright Copyright (c) 2014-2019 Governikus GmbH & Co. KG, Germany
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany
|
||||
* \copyright Copyright (c) 2014-2019 Governikus GmbH & Co. KG, Germany
|
||||
*/
|
||||
|
||||
#include "CustomSchemeActivationHandler.h"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue