sepafm 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sepa/application_request.rb +1 -1
  3. data/lib/sepa/application_response.rb +15 -16
  4. data/lib/sepa/attribute_checks.rb +18 -25
  5. data/lib/sepa/banks/danske/danske_response.rb +65 -8
  6. data/lib/sepa/banks/danske/soap_danske.rb +1 -1
  7. data/lib/sepa/banks/nordea/nordea_response.rb +11 -0
  8. data/lib/sepa/certificates/danske_root_certificate.cer +25 -0
  9. data/lib/sepa/client.rb +35 -29
  10. data/lib/sepa/error_messages.rb +11 -0
  11. data/lib/sepa/response.rb +42 -20
  12. data/lib/sepa/soap_builder.rb +20 -38
  13. data/lib/sepa/utilities.rb +36 -11
  14. data/lib/sepa/version.rb +1 -1
  15. data/lib/sepafm.rb +10 -1
  16. data/readme.md +64 -28
  17. data/test/sepa/banks/danske/danske_cert_response_test.rb +41 -4
  18. data/test/sepa/banks/danske/danske_cert_soap_builder_test.rb +1 -1
  19. data/test/sepa/banks/danske/danske_generic_soap_builder_test.rb +6 -17
  20. data/test/sepa/banks/danske/danske_response_test.rb +97 -0
  21. data/test/sepa/banks/danske/keys/bank_encryption_cert.pem +17 -17
  22. data/test/sepa/banks/danske/keys/bank_signing_cert.pem +17 -17
  23. data/test/sepa/banks/danske/responses/create_cert.xml +14 -14
  24. data/test/sepa/banks/danske/responses/download_file_list.xml +42 -0
  25. data/test/sepa/banks/danske/responses/get_bank_cert.xml +14 -36
  26. data/test/sepa/banks/danske/responses/get_bank_certificate_not_ok.xml +2 -0
  27. data/test/sepa/banks/nordea/nordea_application_request_test.rb +3 -5
  28. data/test/sepa/banks/nordea/nordea_application_response_test.rb +25 -30
  29. data/test/sepa/banks/nordea/nordea_generic_soap_builder_test.rb +2 -2
  30. data/test/sepa/banks/nordea/nordea_response_test.rb +83 -17
  31. data/test/sepa/banks/nordea/responses/df_ktl.xml +20 -44
  32. data/test/sepa/banks/nordea/responses/dfl.xml +7 -6
  33. data/test/sepa/banks/nordea/responses/download_file_list_no_content.xml +21 -0
  34. data/test/sepa/banks/nordea/responses/gc.xml +21 -49
  35. data/test/sepa/banks/nordea/responses/invalid/body_altered.xml +21 -0
  36. data/test/sepa/banks/nordea/responses/invalid/timestamp_altered.xml +21 -0
  37. data/test/sepa/banks/nordea/responses/not_ok_response_code.xml +21 -0
  38. data/test/sepa/banks/nordea/responses/uf.xml +7 -6
  39. data/test/sepa/client_test.rb +134 -35
  40. data/test/sepa/fixtures.rb +8 -8
  41. data/test/sepa/sepa_test.rb +1 -1
  42. data/test/test_helper.rb +5 -1
  43. metadata +18 -6
  44. data/test/sepa/banks/nordea/responses/gbc.xml +0 -15
  45. /data/{test/sepa/banks/nordea/keys/root_cert.cer → lib/sepa/certificates/nordea_root_certificate.cer} +0 -0
@@ -0,0 +1,42 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsu:Timestamp wsu:Id="Timestamp-a9ba5f55-8f03-42b2-82f2-abdd02151c21" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsu:Created>2012-08-04T12:53:12Z</wsu:Created><wsu:Expires>2012-08-04T13:06:54Z</wsu:Expires></wsu:Timestamp><wsse:BinarySecurityToken wsu:Id="SecurityToken-8dfe5037-07d2-4f4f-9ddf-88133497aa60" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">MIIEADCCAuigAwIBAgIFAMa3bfQwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMT
3
+ B0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYD
4
+ VQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UE
5
+ CxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAe
6
+ Fw0xNDA3MDcwMDAwMDBaFw0xNjA2MjYwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJ
7
+ R04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdE
8
+ ZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFu
9
+ c2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwNDCCASAwDQYJ
10
+ KoZIhvcNAQEBBQADggENADCCAQgCggEBAMTopJ9GZXRkKm4Rq9M92EawXIfSI7VL
11
+ 0sykOzLfBzrgYMpqJ7rFxJe7nzECw22TeQ/3m4Gjnhe8XVaKSUDbfYfWzWD44iiZ
12
+ fecMaDZYIyR3g7GMwQowfwTqHhSEjFgfzH3QuGH2KGmqycvyuNGsbWjzvDAov8Yf
13
+ 7F88A4aOkseISO3Vmt2ElKm+gs09z7pwak6OxegDu5ZySS39kpTvq1DK3w2vXkEQ
14
+ GJUYOnDG/723v/hK3GjxclViu1OGSga7UJApjm3ky4s9EWoumf/vLBAnqRp6biOK
15
+ nkGmOJEJlT00VWjaRoDarKOjgC7b/05Xp0ynDSOwqvTI92BdAQwfgEsCAQOjUjBQ
16
+ MB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBSh3exl
17
+ GZ8eC4EiAVvbxenmc9faUzAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQAD
18
+ ggEBACjZJx8+UEcAYXJzstd+6E2wBNmmSvUTiuG7+Vws4+l4eqLLrHkhi66FOEwP
19
+ dnf5/t8k7h5ry61aEf+HdUcQuYRrf7hJPkFjxaMcMGss4uURjVt/R/GhWMgu6cYg
20
+ UIq0NHIMqdYH4dM/19qv7E+je2D3BuJOE3ucqe4Ywd+W2WP8HGlA3PkpMV78SPA9
21
+ N/Usg3VX2KVbdS3idTpSMpxQftjWXmJtef0KawvYmYOw7i+eazHmv5mgxhgCvJSC
22
+ PHN6oGS7v5AVVz9RCjSWEKIXZE0wRSLuTFYzt7/7CgRsdTVwpkFzn+ZJUAjYBPhZ
23
+ Q3Xn3p03DyCFsvtLxwE17UpUFUU=</wsse:BinarySecurityToken><Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
24
+ <SignedInfo>
25
+ <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
26
+ <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
27
+ <Reference URI="#Timestamp-a9ba5f55-8f03-42b2-82f2-abdd02151c21">
28
+ <Transforms>
29
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
30
+ </Transforms>
31
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
32
+ <DigestValue>8aVWGI9oT6jNXSpLQmIgR19lSk0=</DigestValue>
33
+ </Reference>
34
+ <Reference URI="#Body-ddec4b9e-15b6-4f27-bd53-4c61da4502b3">
35
+ <Transforms>
36
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
37
+ </Transforms>
38
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
39
+ <DigestValue>qKN2GS9i5fbc1OJVRDeovIgPULI=</DigestValue>
40
+ </Reference>
41
+ </SignedInfo>
42
+ <SignatureValue>a2lzc2EK</SignatureValue><KeyInfo><wsse:SecurityTokenReference xmlns=""><wsse:Reference URI="#SecurityToken-8dfe5037-07d2-4f4f-9ddf-88133497aa60" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></KeyInfo></Signature></wsse:Security></soap:Header><soap:Body wsu:Id="Body-ddec4b9e-15b6-4f27-bd53-4c61da4502b3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><downloadFileListout xmlns="http://bxd.fi/CorporateFileService"><ResponseHeader xmlns="http://model.bxd.fi"><SenderId>123456</SenderId><RequestId>a1s2d31234</RequestId><Timestamp>2012-02-20T08:32:40.639086+01:00</Timestamp><ResponseCode>00</ResponseCode><ResponseText>OK</ResponseText><ReceiverId>DABADKKK</ReceiverId></ResponseHeader><ApplicationResponse xmlns="http://model.bxd.fi">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHhlbmM6RW5jcnlwdGVkRGF0YSB4bWxuczpkc2lnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiIFR5cGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI0VsZW1lbnQiPgogIDx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyN0cmlwbGVkZXMtY2JjIi8+CiAgPGRzaWc6S2V5SW5mbz4KICAgIDx4ZW5jOkVuY3J5cHRlZEtleSBSZWNpcGllbnQ9Im5hbWU6RGFuc2tlQmFua0NyeXB0Q0VSVCI+CiAgICAgIDx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNyc2EtMV81Ii8+CiAgICAgIDxkc2lnOktleUluZm8+CiAgICAgICAgPGRzaWc6WDUwOURhdGE+CiAgICAgICAgICA8ZHNpZzpYNTA5Q2VydGlmaWNhdGU+TUlJRHRUQ0NBcDJnQXdJQkFnSUpBTGZkTElEMlZoOS9NQTBHQ1NxR1NJYjNEUUVCQlFVQU1FVXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJRXdwVGIyMWxMVk4wWVhSbE1TRXdId1lEVlFRS0V4aEpiblJsY201bGRDQlhhV1JuYVhSeklGQjBlU0JNZEdRd0hoY05NVFF3T0RBME1UTXlNek01V2hjTk1UVXdPREEwTVRNeU16TTVXakJGTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNCTUtVMjl0WlMxVGRHRjBaVEVoTUI4R0ExVUVDaE1ZU1c1MFpYSnVaWFFnVjJsa1oybDBjeUJRZEhrZ1RIUmtNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXczaEhOQ3VidEJ4eHp0R2FMVTg1V3VqR0NXeUUxUllkaXhsbmcvTCtYd3VsYVd1bVhGc3RNQ1hRa0dESUp5UnFOWE45dytEYzl2NjJCYmdSMXQ0R2RxRFhOU1RCS1lweHJlWEhPU0M0RHlBelV3c0p5WkRLRVJDenVlVkNrZ1FsM1NoY0sxVFBuUStGV1QreXp5SVhRVjlabFk0YmMxV2FGOUhsQkovMmxiQmNxU0tyTXExQUFETUhPZVMwY1FhdGJhR2QyUXd6SCtvMXlWSEhuMVh1UE0zUW0zeExLRE1iajFnUjcrQXFoVWxmTndia2trZWE2cFN4YUQ4V20zd3ZmUHo2UXFHMDlEclBMVnpVci9IM0doN0pPMGM5eHJ3ZmVzakZ5UnA3SG9uM0JNWll0NkNPakpxWVVTQWIxMmVTcUJmZnM2TzJPclB6YnloNDk2Q3g2UUlEQVFBQm80R25NSUdrTUIwR0ExVWREZ1FXQkJUQ3JpKzlLanRwZ05xUVp0NVpxQWZ0NUE1VVd6QjFCZ05WSFNNRWJqQnNnQlRDcmkrOUtqdHBnTnFRWnQ1WnFBZnQ1QTVVVzZGSnBFY3dSVEVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WQkFnVENsTnZiV1V0VTNSaGRHVXhJVEFmQmdOVkJBb1RHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpJSUpBTGZkTElEMlZoOS9NQXdHQTFVZEV3UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFBVzJIN3VMREtKOEJsWEdBNzFsc1JSRW9RdGw4SEkwaytRUVViL0VpOGt0azRKMjgwUVFCOWJaR2Q3VTNhQThrTEdpV3hhN2hvdTBsZFc4RmsxckhXZENRbGh1VWdCZDFPZGVwdWYzY04yY3ROSm9GUVJEY2NPWTFVbElyeEQyZTY4czhLMXJsUVhHQ3lnb21nbCtTcnc2MjBPYmUwOXE3VUIrblo3Q3Yvbjhiek1BY2lUajd5aE9zWHdBT3grOXJQZ1A2eHpnS0dRQUsybENYcW1tT21rVTRvdFh5NjRUcmY3YStjT3FMNE15WDh6dUpoYWRMbFJVTUdEekNGNWY3ZzNDRjdjTC80cTM5Q2VRc1ZYbjUvT0llaExPMHlaR2lLYWlhY1ZSa3Y0UGlYK2NzUFRiUkZtTCtFU3kvU2NvMUc1NzhLOVN4WWdTS09wNWs0bERlaUE9PC9kc2lnOlg1MDlDZXJ0aWZpY2F0ZT4KICAgICAgICA8L2RzaWc6WDUwOURhdGE+CiAgICAgIDwvZHNpZzpLZXlJbmZvPgogICAgICA8eGVuYzpDaXBoZXJEYXRhPgogICAgICAgIDx4ZW5jOkNpcGhlclZhbHVlPklkeDY2eTFGd1V4Ymhyby9WUDFUaFlhT0htZU12OTdjK3ZYSHpDbHFETGNjWDJyNzJWcGFXSkl4SmVqawpHOXFTeHRrRmJPS01FY3RZZjlucVBNVjYzRStlc205aXJ4cUxNcWd4bEVIWUdwZEp6RnVNNkZ0NDdEVFYKdkRTVkduL2xXN3k1QmVYYUJleElNelNhTVhrdTVEWDhFK09PRE14ZWhUZmRTendwcU00Y1dMbjVuVlZ0CjVDd3NlcHdmQndmZElkandKN0FidlB4M1VsTEZNWWhTREdFSU0wdkR3MGQ3OWxFYVpwNldOeWR2ZTYxSwpBa3NnOHVtcUVPR1kyL3pLa0l0QjU5YVgrU284Sks0b2dvNUpaWDhISm9WNGRtZXdadC9YS3NxUTBVQU0KUC9jc1lHV2k1VG1SbkNRNVlPMVpDbkJ4ek14NUUyM29XNUVXd3lQVzlRPT0KPC94ZW5jOkNpcGhlclZhbHVlPgogICAgICA8L3hlbmM6Q2lwaGVyRGF0YT4KICAgIDwveGVuYzpFbmNyeXB0ZWRLZXk+CiAgPC9kc2lnOktleUluZm8+CiAgPHhlbmM6Q2lwaGVyRGF0YT4KICAgIDx4ZW5jOkNpcGhlclZhbHVlPlJQc2hHaXV5TXlQcjRyL2dEZmVubWFWM1JpS2xkY3VtQk8yQTVvZXlVajBESDdzR2FTbnBkYTA3eEZqWApsd0NZRkp2a3dtb2ExM204d0R5WXhRRXI0MnZIb0RyOSszSUxaYWhsSU5IWUQwSUZUQ3pjRFJWTlFZeEkKQXFsQnVnMmZkSFFtUUF1TU15RzJLMGl6MkdrR0Zza3hoYzQvelZ2cXNad1h6Vk5wM1h5NldncU5TWjVPCjVhSXBiQTNTTUdadHc0aUFVNUZzY3ZYUDIyU0NWOGVDVW96d3p5NWg3a2dDT1VIMjFYYk1VVVlNNUlPSAp6SUp5Y3F3anNscVRTMy9aWFBSRjBsZkZwSDRMN0pCSnNXQ1pwVkdWK0ZiVXNJMFdzaWM1NFZweW5LYUcKdFZONkx3eFFHVVpBalpBU0FUUkc0b1dtR0tZMUsrRUNZdEVvb1ljOVczb3RxbzFPSTZXQmlGR0hPY2RzClNhREg5eFVKYmlUcnU2cStXOXppc3RyTVhncDA2MjVvMDdORVdyeUNIZFRnZzNZQWpmdmRjSTRYclowdApxc0c3SzdNclZQU0tHZXZ5bUI1cmxuVm44S3NUNXM3R1Y0cjZ3b3dyWGZ3b0lXaHUzRmU4NU9RUE56ZS8KajI3NmdtdmliRUVIVVVMdldKS2RFd2pPNm5TZkJVVHFadW11WndFK052Z3A4SmVGL1FiMlRWNk9YdlMxCm4wUUF5bXZ6Z0tQSTlxWjRXSU5FWHFSTDErL3RSNjQyTyt3UUJYM3NqSXZDbGV2ZnkrNlRobGtsOWxmbApSY09zQXRtR3QzOUErMFRxZ3NYU1o5K3RqaUxLQVducitKeHRKM1oxdjIyKzFHdmV5cnBkalVZbVRmTHkKZG9DbzV2aytxU3h6c1JFMFJ5aWpYY2w3cmFQb29DN0p1UFFLUWswdUx5SEV2QnBkdDA0Sm4rdWdQZVdhCjQ2K1pPUElxcGxTeENVUm1EbEJyTEc0QTF2ejM0Q29yODF5SzhNQkZJSHhXa0pRVWZWWmJORldDYXl0SQpIV3JuZjZGUklGZzBYT2YyRXBJWVRyTXhOdnIwSFVMQUtHbnNlVlZOMnM2L2Y3eWx3bzJqY2ZXL3lBNXgKcjhMZUU0Q0p1b01HSU81ekJPMDFkUGdqSE9yZ04zVCtNbk1sT1lPcVUveExxeGFCUzdkbEU3VkZqYlV2CjBYS0d2b3NNZWlONnNuczJJUThvZytiNHh4TmFUTVhJTXQzc2RzVld4ZHJQU3NMSGlJVlNGQXlrdDVMSQowNFg0bkMwd29PeCtDVjg2NkZBckhJdmdwN3FNeC91S3B6T0pRKzliaWJYNGtMUlo0RFFGd3ZBMTBCZFIKM2hFSkNjRTY2YVlhWGVKdnljTlJLOVdDR1hONkJzLzM4bkZNN2tscmNuSU9IcjZGWSs1YW01MWtDaXdHCkVtdWp0elNQT2pNQ2UrYS9ub3p6WXgycE5PNi8wNVovSmwzWWpnNVV0dGx2cFhKTm5FTnVjeGRaVVZwNAoxNjIveGxydkNuOC8rcGk5L3VHb1R2WFFGMmEwbFFqNStiMWw3RWlaNWpmQmFlbFRmbHUvTUpkaTR4K04KVHhOUDR5cGNqcHRnYUxLV1UvVTRPb1djaFZkd2FEb2FNdXRScE9XT2Q0WnowWWhsQWJDTGFUTjdQaVRPCjJQOHpKQUgyeTVEMy9HSThtZkRPa1ZlN2pkYzA4TkpsYWsvSStYSm4wbFA5MTNrV094OEsxcmd2ZldreAo2YmdTZ3IxL2MvQ1Y0VlJwRTNPTFUveHdMeUIyTHVUaWZteXU4a3pId1hxeFFzbnAxUHdUczcyalRvTDcKcDVVVTQyUGcvK25EcEFMUmRTWk1ZNnJjMEY3My9RZmdDY2pCOWJ6d0k1N05MSjdkOVFnL20zS3d2bGRtCktkYnUwWit5RXR4WnBQT2NzY0xtekhGNFdWR2VBeTBYcXB0L24zRGVDeExZdVFiajVnTkF3TFl6RHFCbQpQNjFnNjc3RitVbVVFYXMrUVJEY2hlZWlObGUxYUZlTVJYWEd5ZTZ5MWk0QnN6eFhleVdPcy80UURLekwKWkp2QlFFMWM0T3dHL2FuN2hKVDhiVkFqd2p3TEIwL0d2clFBVVRXR1JGOFFWQVBMbkY4dnhObDhlOGFoCmtBRFZiam9OQ21iUHAwNzZyRzhwUHB3enZUZ3lZNHB4ZTF0NHVSSG0zOVBuUGtmUzFRcnk2QmVhSFVqWgpzcm9leVJhNnpzQUJFMGt2THdpNkxnRFV2NmkxZngyemNDNXhkZ0RoZjRZYmNueTBLVys2NDk2b0UzNjAKSHpDeG1XZDZKYm80VlpteHVUVVpTZTk2ZnJwL0txNE55d0ZjQXJCbU5YYUdrVjN2bTB5NTU4Ui9UZ0lNCmxzTVpEaEdoQjdacm5aMGRMaEVzZVN0MUY2Mjk3TE9oNnRtQ3AzS1hGeHZPSVQxekFDMUFySnpsV010YwpNZVV0eE5pZXdacFRFUjNFSkxZY25UYmZXdjR2N1hIQXMra0VOcmwraGZqMEhYSnp6bUpNU1o3WXJQVWMKeVRGK0RldXk2Z29yazMzWGVTd0hFQkR5VFBQOUtLdEFETXRIcmZVMGtmb0ZvOTk2SGUraHB0T3JlZ0tvClhnVEhnSDc3cFpMVEFsYmJ2Wk96S05ndGZiNnExYnBmcFYvbE5ua2hpdXZRNysrUUMrTExoRUZ4OU5SdwpYVFVlOCsxSWlUSUxjWEszc2YveTUxdzR0RUJ6RStQdTBZN0Q3ZlIvUS9scEpSMGFPVFhVMCtsRUZjanUKSzJ4dGpoaEcrQkxaWFJkeitUMjJKaENmcmNkZ0F5Sy92STNGZVRzaG9aWXVlSWc4M0dTMHJkY1NYWjFPCjNRSzZrVWZUNDNUWFhGSDVmWEhzTDM1ekFFRDRUeFR4ZFYrRUpXMVVrb1hLaVlIalhWUTNEWnF4WW5YWApqTE1oMHdGd0tuVFZlNlVyTlhkWGZrYTZBMzNOb3gwaUJNeHNtZk9pQlZaV2lEQmlRRjBMUUhSekNrTDYKczBvZUZMOGU1Uzc5ajFaZTFmdCtBb1R4Q0lXTkpRMkNHUitSOC93Wm5TRE5PUXR3N3Y2K2JzWFZCbW1tCkcrdDZUQVJESG9NUVJ5YkJLcm1EeUxRUjVFWjJCUWs0dHlNU1FYK0E0N3hXUTRDc1hVVjhCOHlzaUZSdwp6VHFWRHBXaXNWV2dvWnYvRXlYNGNrS2ttaGIwVDRnNnBRT2dXQVVtZkFJc2FqSW0rNDlia0V5RmtiZnoKakJKcFpENTY1NHV3RlRZUDRFcnVqM0ZLZXc2VEJYQnJyaUJsZjlia0lSaUxlSit1QmtzbGlJKzhDMDJoCityZE9oTkhBVU84bW8yamVQcVNveGQvSVlqcjFMTm1LU1AvRjhNZHhFZzFVMFk2bmUzSGVMazhKTS9TWgoxalRHVFFvUmVtM2I4QUFOTExaWklKWVovMVFUMFlhVERkSGMyblBnTTdXbXVEbFRPZFUyenU1Z05uRlYKZmJINFJoa1pNdkM5NXovaDArTjRJMHBnTVJKaUtWQXNDR3o1RllpMjcrTEcrSFVFMjZjTHJCKy9pVFFHCkl4R2hyVGEyQ3QwanBzWlBNR0JBMkd4aGNmd1lDc2NJUmlQU2I1SEpldmREUFFMUGE3MGtsNVpyTUsyVQpJRXNkVXFuK3J5dVJ4ODdoeXo3ODA1cHJORm9SM0VZYmVxVFZ3ZFZyQXBvN1g2SzZIM2NkYW5wK1JiMmYKeXg5ZENadCtXNlA1Y0NtTXdPei81cGdodktBMEwrWmxIODRnalAyeVp1U01tWG9kcHR3OFNpYkZoZzdqCjJBVmppa3lvSERxNDVmcHZEcFZXUk5HQmNiUlpTblB4dEN1aGtlNExPSkhTZHdoRVBSRlUwbHVReXdKeQpTWG5XMGpldUZramdTY1dkaEZjOGZyYUZyR01LTVgxUVdocTljQkJxUUtrbk02TVVPelFVOEpJY2YzaHEKMjY4QlBHRjB4QjlnMVorN3pwRDBkN2dYTEVBY3QyUzhWTHFRNmE3Zis5VmNYMmE5ZnVYckVvczZESnVHCjF4MkZQQW0raHhmeVlTSndwT1BENERTbmFPL1R6UHMrN3lBOE9qOEt3QTgwME5IUk5BRi9CaTFYSUxHUApSeDRiUE5aQnJmYXdXYVpXaVF2dmdocTNxMlE5OE50aGFYK1lkWWUwanhNWXFSZThodTl5T1Z5S3F1NU4KQUdBUjNLTER2bHFMbG1vMFhxWFZwQWpBRVg3a3VsV1R4ZXE5TGNKOWRGZnBJREhWdzdGS2JURVJWVkNwCjBIU2RlUEpiQzVpeHI2TURKWDVNMjVHMW9URXBaS3hmbGdqMFVWT09DR1V5dUJXUGJqSFhEM0cyMDF5VgpnTTh2WjVkQ3dqZjJLSnRPTWhOZ3dKS2xhMytyU2lET0NwNFVxVVZRZVkzcGFjYU54SzRSUlFiT1dQUFcKS0xkQk9oRmtWZTFpVlZ0SWZTMEorZUdBNllOV2lkN2lYZ3Y1WnVKQmZoOHVFNDlXeXFlOWdnMDV2R1FzCldIRWIzSFVYcmdUVktIQ3hEeXFZTzFNSXpld1hOMXVjbkR1ZnRGWGxJV3lZaUloNXhQUTRyRkFyVkw0bwppSS84YmZpZHZYVEhMVFFLQXRyY0wvODZNL1BjRExDOEFNbG9ldHZtV2t2bkE3MFZsenB6V2VEZGsxNGIKc3pkbGRJQjM2ckszVjdNM2ozSEljNmMyS2JsRTVRaGYzNS9wazJSNzJQeUd0RGhpTytuK0V3WmVlOS9SCm5VenFNeC9hdHpYVkxqcHlRbVFEN1NvS2Vtd1dBekI1TlI4WDZUVko2QkN2RzBVam1NSk9LYVBFZTlKSwo0MDQxbzhMK1F2NDVocUMwcVNTU1ljT2paUUJSZHhwc2MzNlpod0plSFZkN1pHc0NQMDBVU1ZES25temYKUU1DMmgzUWZzNFVCSFBBQVhNaXFFbW13SjhBK1daOGd5bXVYZ0J1MGZOSE95ajgwQ1MxZi83M0NaQU1rCjRDRkZ6Sm0yd2VGYUpPSmwra3JTSzBKeC9PcVhmWm1qQWlNdHhneXlhOUp3V093WXU1SUQ5Wkhzdmc3QwpVLzgvUjhpaDRsT1gzTFBTZDhMUm1aSFBiS2xQRjN5QVpuVVo2eU1tR2xDaFZYMFEybHk1dVpXSXFHQk0KMUdDMjBHNzBLNEU4aC8xblFGMVduYmZSekJxZ2FJdjJQWmYvSUlsb2MvSkhIaHJiSmNDUE5KY0MrRktXCjliQ1gxOUxac3MzMkRTNGh6SXNTTWlsancyUE15NjhiTHVVdmVzcCtGN0xubkZZWkJxL1l0U3h1ZkdxZwp6OEhNQXNrcXArNVg1Mml6TVMyUTVIRFpoYUpRZTRacXRYSDVYSTFHem52ZzVjVFJqVnZ2eHpiNkpEZ1gKODBjU200emhvem9RVjJDN2xtRTRJWEg4eW1jbW1wL1ZHMXp5SkljUEE0VzlYT2R4R1J0dWJJa0VNNHhkCmtZb202MlhWQ1JoS1RiN2x4U1BQZytIUGsrZHFXVUhPdENzRk9WNEthazVQa3B0a1hZT3orcVhIUUJJegpYN3B4V2V1aFFtSnArUk1OellCODBJTFlzQ1ZkU0NaMzVsYUk1bmswZUJ5c0JLK3RXYkhVUENad3RVa0YKaEdTcFFsU08xVisydnNQSkVCbUV3SG5tZ3lPQUM2RURZU2hQZ29jWXZKbHE0bEtET2dHVEx0T2dnbHlRCjZsaTNVUG9DVmxBV1JOU0pGNzZrbjZpejFPbWszOXlrUzFtWHVuaGlUWjZsc21QSFpMa0RuOTFMS0tUcAphZ0JYeW14ZThYK1MvaERUMlVQeGJ1UHhpcHY3T2dxQTM0SUIyYmQrMHNQYUg3bHk0K1NKRURxT0c4UWQKME4xRHYzbVROVG1ZOXhPZWJaRTJseWtMVUVoNU9NYlZEcW5MTXBRekhJN1pGQVJxUkN0VmY2SDBNYUsyCjU2M013NGVucDU0a0tNdGpvN0ZnVHF1SDhlY284Mks0Mk5GOGpaWnNwcTI5b284TmZqWnVxZVVLajZ2UApUTkt3MFQ1WDZYU1ZnN250QTlwUXRnMXJNYzI2UEkrMUVBQnhzL2I5Zk9JU2ZtRnpwTi9VMytSVjBGWXAKTEs0ck9Gbkgwb2RETVo3Ky94UVExV2lOK01XaThFZEk4ZE02VUpNN1JRamJ0ZkhzTFFLM1hhTGZocXZDCldwRUplWGpVRTlCQ2xwZFVTRlVuQVdpN21RL0dzeGNPK3NiV2I1cTRJNmFCLzgrc2VINy9VdEppYnIvcQpESzNaNytpakE2Q1ZDNUhaQUs4SzlmbVJHcTg2QTJRWjRiNHNvS0JlOTd2ME50dkRGbU5RSEdZODVBc08KbDNYUkVJS2dpbEFzS0F5dzlFMVc2Yjk2Vkdoa25pdUVrN1hIMm9BbnNsUHZLL0ZJS0dVNkU2azlUWkVICmRiRkxkZjA0M3h3ZDZoZ1dkUEJYTURzeEZENy85eVJwZ0ZPUHlXNjY5ZzJlYW4vd2VoZnVDZlhhdSt4TQorYS82WENGQ3V4TlBCMnNPR1VOWUlqS3lvQUxoUU1xMUdISi84aHBZTUJWandsbktvZlZWNENlRDBxcUYKbVhPUzNaZDNYdGlVNm90bnFJTWJidURGK3pWb0Z4UVU3TGs5K1k2K3dUNDFCSXFwdUxTblJOYlFsR2I3Clp0TE1LWXQ4Yk50Ry85VWs2WDQ4bEY4TFZHR2FDRndVV2lYZjhNdUdEYk9XYW9aWEVLL3NZRUJhVmdOegpmR3daZnorVHZGaDRsOG04TnJuRjNTeCtrM0FPdFVEMVZEdUp4eXVuMk8vOW5hMEZJT3RQNHZ2ZTY4RTUKTnY2N0J4QzZuaWF1RWIzNkpvS3dhNjZJbDFQM2V4MnFGdTVMRGpJQmpORDNWcURpNEdkRVJnOERndkdICm16SXZIdUNnSG5RNjNKS2Uxc3QxL2lrTEtwUElaQ25TMGNNbGQ4NkRPUGQ2Y2lFTllqL1d5REcrejh4cgpWM3E5aUIxQUhRUnRzNE5aM04yUVVyY2VzLzhreHhQQ1hjZzd2VTMzNmg1bEQ2MzlTYlJ1a3kwVjBRTUQKbnF5UkRFc0ZhYlU5SzZPeDlwK2FUeVBRV1VqK29JV2xtMDh5RUVuYWFSTkJ0NS9IQWR6TzVUVElmUXN1CnJpQWs2U3NEdE1LRDhENk5SMzVVaW1KcFI2UmpETEZNNjZyRVhwZnpzSW9rM1dDTnJUUTc0Qmk1WnRRNgpqYVBBL2JhRXpJSXNXZzRtZ3BvQ2tlZmUwc2dNaHRKeDYxYUVMYnJmNUtVcWM5SEZOQldWb1VRRFZDcmgKQ3hZVjYwVU5xa2FMRHluUERqYWUvNVZvUnF3SUdzM0tqbW9jS0YrV2kyQWVNQ1pKQWtXL2hIR09zempQCjdaUW1TRGNJeTRQV1RZc1NoblI2cTZoM1NjK29QSDZ5Wm9RZmJjbzR0RHpDK0xHWE02UDc3WHowV1dBTgpmWEZSM3F5TU9EbWNKRTBvRERpekFxZFdkYVRsVFFTNXZTWjIvZEpnT0pZRUJ1a2hoSmRxSWMyMWFqQ24KMTFnZHhUaTFKdnNGbWgvUTZucFl3QlgxVTZLK2hBeWxlR3RLSUVPZi9NQWNnelpRVVFGZldzY2lJWXFXCktLVWk4NVJFSFNKYm9BdWFQZkErcFBRazcyU09BdWo0eGZKT1ducEw3ekNuUVNkak4wQmpZMDRaRk1FeQowcHRWejhKTVBmQS9LbVNpRGV2QUtab1A3MTFtaTY4WVlQeFFrMGZWZ2NhNWljZFh3SlNiWUdZWllOTjEKZGd4ejRKU0tFc1dhT2dKbkRtTWhRczNDZGk5ZFFFZzlWS2JraENHY3czRjkwY2szcTIvK0JVdFIvMFB6CllKaGFyYWs5WlFuektRNmgwblV1S3Q5WC9xMXhhbkZDTUM2ZDBjR3djTGZmZVR5Tm1SRHVWZ0JtYldHego5RktIRGFwTThtQW5IdmFWRlgrTjVkS2NFSmNyZ0JLOUlIUFM0cEl2MHM0UTg3cDIzZ21TZCtuQ2pRK1IKbjUxMCsrU3JIVDN1THcyUG5CdjZKVnpuS1JSY0VlUT0KPC94ZW5jOkNpcGhlclZhbHVlPgogIDwveGVuYzpDaXBoZXJEYXRhPgo8L3hlbmM6RW5jcnlwdGVkRGF0YT4K</ApplicationResponse></downloadFileListout></soap:Body></soap:Envelope>
@@ -1,37 +1,15 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <soapenv:Envelope xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:elem="http://danskebank.dk/PKI/PKIFactoryService/elements" xmlns:pkif="http://danskebank.dk/PKI/PKIFactoryService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
3
- <soapenv:Header/>
4
- <soapenv:Body>
5
- <GetBankCertificateOut xmlns="http://danskebank.dk/PKI/PKIFactoryService">
6
- <pkif:ResponseHeader xmlns="">
7
- <pkif:SenderId>360817</pkif:SenderId>
8
- <pkif:CustomerId>360817</pkif:CustomerId>
9
- <pkif:RequestId>b90999d5c0</pkif:RequestId>
10
- <pkif:Timestamp>2014-06-11T08:21:11Z</pkif:Timestamp>
11
- <pkif:InterfaceVersion>1</pkif:InterfaceVersion>
12
- </pkif:ResponseHeader>
13
- <pkie:GetBankCertificateResponse xmlns="" xmlns:pkie="http://danskebank.dk/PKI/PKIFactoryService/elements" xml:id="response">
14
- <pkie:ReturnCode>00</pkie:ReturnCode>
15
- <pkie:ReturnText>OK</pkie:ReturnText>
16
- <pkie:BankEncryptionCert>MIIEATCCAumgAwIBAgIFAQjv8bMwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xMjA4MDEwMDAwMDBaFw0xNDEwMzEwMDAwMDBaMIGYMRAwDgYDVQQDEwdEUENSWVBUMQswCQYDVQQGEwJESzETMBEGA1UEBxMKQ29wZW5oYWdlbjEQMA4GA1UECBMHRGVubWFyazEaMBgGA1UEChMRRGFuc2tlIEJhbmsgR3JvdXAxGjAYBgNVBAsTEURhbnNrZSBCYW5rIEdyb3VwMRgwFgYDVQQFEw82MTEyNjIyODQ5MTAwMDMwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQC/kHrOvHOueBsit9drxIHpaD7mXINypXS/l9PbbOZ0lZKVEfW9gtG8xk9XggsPXHJMF/PXpG6mveXvPu9WW/XpryAUqGfvYsC7Px3ixaJb2EMOL+2mJYd0v5HKg5RuYkQ82k3K01hMNEGYs0OotjNVAimQcTLtVPDGBjK5BUAiwady9LpI6afo7roJWnRmsvSvinDgBqswnfCvUfSfM8cZyhnLLC2uj1kBHAD/5xpllmS3aq1M8LqFkBYcCE5PdPmFWhGUumZ/Y5qLjDgcPMAPvUaKLqOsh22jvPCZ0pm17eV0bSQzWe5e0zkgCYAepuFRazSlkJQYBdS47Mp68dY5AgEDo1IwUDAfBgNVHSMEGDAWgBSE+uW/3pFJZt/FilLDs7ezIBzHbTAdBgNVHQ4EFgQUP6wHVNOmznu212c08M3oeYjeXW4wDgYDVR0PAQH/BAQDAgQwMA0GCSqGSIb3DQEBCwUAA4IBAQAvJBfPug+ixGL/zWUnKMweV80atZXMjHJEn4mOE+iUkCNONLImMMt6MXJysnJViL1gL5xMrka6A62PLLsVkl79kxDDbzXMPfGt5/mB9L7CMpyzaID0acDii3rsZwT3Wxpnate6wowN4zpmXgpCpTDGbxjuVRiOArsjQblerhfxnD/UAieZ1IWozIANs6SVms/TuOB+bODUr06ITxBkDJhizOJxjsXRIAtwZvvrH4qGjJz5qFcPb3nz4TxwswU8X6yvbtqF+q4aAKPA6ZydnGZFQSoSzNJtcF28T1ItxEHN3+xyQqXpTgFviiuL277LaAl9YUFFnSgeh7GiFitWJPfD</pkie:BankEncryptionCert>
17
- <pkie:BankSigningCert>MIIEADCCAuigAwIBAgIFAMa3bfMwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xMjA4MDEwMDAwMDBaFw0xNDEwMzEwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJR04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwMzCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAL1zYMqPk/6klEpL5wo+vWAo3MmxPz4wq9wuLAHpPUhJ4ZpHmncNsdmqSSXT6U4mxTY8tzKvz4ZdTDljp+5J6OxOl1B7av3V7hlHtfGb7wozsBAya2JOoPrLxc+ajapslbduiEvdhW9ZLKvn/n7rQ9sZzHA6GyGKQk8lfvKK+OjMylA86XyxApasFD/0eIDnzUJHth3UpPoQTJAlB7h7d4CKc/QG9tFv900AAi4R/Tmy9TRai7fVCkXz7y4qRXN+M7NIhDGAsCmtM6oSuDqjv3lh10nD7XELTxTvcbpq5xHLt9yknwjiM2ivc4XudDMgC7ESoH6vaJSUcbC17+wa6IUCAQOjUjBQMB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBQHbPgey2TInIKC7xbag8AZG25qnTAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAFl3WfGkVElIeUXjQsr8uQFXhkSbrI14F6mRIkUpCTa9Px/UUfw1HQNVn4Tyep30JmfsFN91Yj387jiZDzoeMYeiVI32wyZkao7rC3Z4YhAfUdPdVFZqO1k2gOgoZ49nyLKVS+GlyuzeLQVBnFE7f3sbpgDTRzd8o58W5VncHuzmSj/IVe8ZwRQ4bm3cHlKTQpRnyz5x7UJjp08fH6KOUal8DVsOaQKoo+jWIsPPir58b/QZsxIRL4uq3qqQt5udrbZqyltRsyxUpgomIN5irCn7Wgr+iYwNLhzXYwxKvwKsNRS7isEAZuyfH9fNarBRP4p72g+225NB0itQ73Xo7pg=</pkie:BankSigningCert>
18
- <pkie:BankRootCert>MIIEPzCCAyegAwIBAgIEQjoxcjANBgkqhkiG9w0BAQsFADCBmDEQMA4GA1UEAxMHREJHUk9PVDELMAkGA1UEBhMCREsxEzARBgNVBAcTCkNvcGVuaGFnZW4xEDAOBgNVBAgTB0Rlbm1hcmsxGjAYBgNVBAoTEURhbnNrZSBCYW5rIEdyb3VwMRowGAYDVQQLExFEYW5za2UgQmFuayBHcm91cDEYMBYGA1UEBRMPNjExMjYyMjgxMTEwMDAyMB4XDTEwMTAyNzAwMDAwMFoXDTIwMTAyNzAwMDAwMFowgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKWRtTRCXNEn5Hj+tA0vVg8VKUi/HnFgioZW/eyaF4gWvR4PNXXJJOS31VNHnb2SQHPLt3ac+5icH7vLu/OtS5rvnDiDFMg+TomVDrur6RtlsZNLnihZiaSaooI49+ERTz6vcCjST7xbfhmC03LUhE8eBKI1U70cx/lQ55UQKZvIAIbCVaZEks95VS4uJpwnU4M8glNIVGSvJhIUj/LIkSIcqBiryq/t9FRVtRl1gVhwKdi8A5O9hp4t3dBIdOanaup2UEL4lp7izzgt2rkMeuyQ1ZjHsN7LmDsfjoFcYx/8CID9LBwRCN2p+YCuoWUjuorrdU/2eit2lNh6ypiF6WECAQOjgZAwgY0wHQYDVR0OBBYEFIT65b/ekUlm38WKUsOzt7MgHMdtMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMEgGA1UdHwRBMD8wPaA7oDmGN2h0dHA6Ly9vbmxpbmUuZGFuc2tlYmFuay5jb20vcGtpL0RCR1JPT1RfMTExMTExMDAwMi5jcmwwDQYJKoZIhvcNAQELBQADggEBAFjnBPCos7jMMLc3FqyQUMt/HJGKgJDrhYiPZBo9njGkH52Urryqw1sbT3wXA1NuzbjHE3xTUD+5jNPCncYqML9xqQjSQkBcb9eJfHZ+asiclsO38cSn2qriJPIrCREPOpRVqrGQRbZQhmDiB198hpAdLp38khJon/gXbR7u9e0rN8MIM4sXn+lFuQIWiPuv+3llGSoLlIxJnjiQQ9FDjhwN5U+N1N2aHaLc5AHu4X/qRutLCy7AYUJZMPBoakPLscYceW2Ztvx4VAyOXgHDdvmz0Bd58XWOs1A9bNMZFeYAB14D9yQRCkXYLhr6sm8HuyqaIkGChFpNb+Gf8gcPvtw=</pkie:BankRootCert>
19
- <pkie:RequestId/>
20
- <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
21
- <SignedInfo>
22
- <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
23
- <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
24
- <Reference URI="#response">
25
- <Transforms>
26
- <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
27
- <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
28
- </Transforms>
29
- <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
30
- <DigestValue>hlJfqr9mI7Z3VePrAg3Pklb9ABk=</DigestValue>
31
- </Reference>
32
- </SignedInfo>
33
- <SignatureValue>G8A9IL/ZKjcT8B4gTvUQm+yDBQRh3TfUXxvhi1CtdjfvpVCOpsjH+E1Q6BTKC2ngcBdPMuP0Yp6wZhOH0EvQu9apqWtZeKvDY8AUGWM8HxglnhEQNrvzw2Z+LMHKeg5PIdG6YMjOcmNu7chy5E9NhUmhj9ic8hJOiCE00vjiv+I2YeQC6EJ6J7UjIgJWtMlsgzvuz5jhKmvYDh3MYSmfeuHTbm8QEM7f83UgmFw2UXuN/q5ahMxJlH28Ix3WGHZ5OFjSioKT125hbz5AQ6JEry8E6qiEkSLtLfmiYnv9zNqIItcm9TVgurqoKAZObzkCcADs+hoNEHXbE3CvNHUvog==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIEADCCAuigAwIBAgIFAMa3bfMwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xMjA4MDEwMDAwMDBaFw0xNDEwMzEwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJR04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwMzCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAL1zYMqPk/6klEpL5wo+vWAo3MmxPz4wq9wuLAHpPUhJ4ZpHmncNsdmqSSXT6U4mxTY8tzKvz4ZdTDljp+5J6OxOl1B7av3V7hlHtfGb7wozsBAya2JOoPrLxc+ajapslbduiEvdhW9ZLKvn/n7rQ9sZzHA6GyGKQk8lfvKK+OjMylA86XyxApasFD/0eIDnzUJHth3UpPoQTJAlB7h7d4CKc/QG9tFv900AAi4R/Tmy9TRai7fVCkXz7y4qRXN+M7NIhDGAsCmtM6oSuDqjv3lh10nD7XELTxTvcbpq5xHLt9yknwjiM2ivc4XudDMgC7ESoH6vaJSUcbC17+wa6IUCAQOjUjBQMB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBQHbPgey2TInIKC7xbag8AZG25qnTAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAFl3WfGkVElIeUXjQsr8uQFXhkSbrI14F6mRIkUpCTa9Px/UUfw1HQNVn4Tyep30JmfsFN91Yj387jiZDzoeMYeiVI32wyZkao7rC3Z4YhAfUdPdVFZqO1k2gOgoZ49nyLKVS+GlyuzeLQVBnFE7f3sbpgDTRzd8o58W5VncHuzmSj/IVe8ZwRQ4bm3cHlKTQpRnyz5x7UJjp08fH6KOUal8DVsOaQKoo+jWIsPPir58b/QZsxIRL4uq3qqQt5udrbZqyltRsyxUpgomIN5irCn7Wgr+iYwNLhzXYwxKvwKsNRS7isEAZuyfH9fNarBRP4p72g+225NB0itQ73Xo7pg=</X509Certificate><X509IssuerSerial><X509IssuerName>serialNumber=611262281110002, OU=Danske Bank Group, O=Danske Bank Group, ST=Denmark, L=Copenhagen, C=DK, CN=DBGROOT</X509IssuerName><X509SerialNumber>3333910003</X509SerialNumber></X509IssuerSerial></X509Data></KeyInfo></Signature>
34
- </pkie:GetBankCertificateResponse>
35
- </GetBankCertificateOut>
36
- </soapenv:Body>
37
- </soapenv:Envelope>
2
+ <soapenv:Envelope xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:elem="http://danskebank.dk/PKI/PKIFactoryService/elements" xmlns:pkif="http://danskebank.dk/PKI/PKIFactoryService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body><GetBankCertificateOut xmlns="http://danskebank.dk/PKI/PKIFactoryService"><pkif:ResponseHeader xmlns=""><pkif:SenderId>360817</pkif:SenderId><pkif:CustomerId>360817</pkif:CustomerId><pkif:RequestId>72882ae6c0</pkif:RequestId><pkif:Timestamp>2014-08-06T11:00:03Z</pkif:Timestamp><pkif:InterfaceVersion>1</pkif:InterfaceVersion></pkif:ResponseHeader><pkie:GetBankCertificateResponse xml:id="response" xmlns="" xmlns:pkie="http://danskebank.dk/PKI/PKIFactoryService/elements"><pkie:ReturnCode>00</pkie:ReturnCode><pkie:ReturnText>OK</pkie:ReturnText><pkie:BankEncryptionCert>MIIEATCCAumgAwIBAgIFAQjv8bQwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xNDA3MDcwMDAwMDBaFw0xNjA2MjYwMDAwMDBaMIGYMRAwDgYDVQQDEwdEUENSWVBUMQswCQYDVQQGEwJESzETMBEGA1UEBxMKQ29wZW5oYWdlbjEQMA4GA1UECBMHRGVubWFyazEaMBgGA1UEChMRRGFuc2tlIEJhbmsgR3JvdXAxGjAYBgNVBAsTEURhbnNrZSBCYW5rIEdyb3VwMRgwFgYDVQQFEw82MTEyNjIyODQ5MTAwMDQwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQCtjaKTui8Ll8LJ4nke+lJs3GNNx6IeehabOumWUBdw6MICC8AIV4Pj+KWP1/TZh6CcLY3FOmeCvwPuEblA4A2eb1jS4M3U5pc7PFMGL0ox5SY/SOqyzm/Fo6VX2TxC9FXNSv/GGvGzbakeyGW0/ca48u12cyStn4Houd7TqudbIqqkbr02bxt0nw0PpxHBOTouPAARQdvdPD+aPRJ1X6TKkuMrW2Ig1YhW04hdfcH5duirnxtK0m4Qebxk2HiLIN66MdPgs+0JHIoGgB6stJEixeDpiM15HQDpSPVRwZVUcnvqP/aEW06j9f6j84zB05NuKM2JFg/1wbMyPBgdhRNvAgEDo1IwUDAfBgNVHSMEGDAWgBSE+uW/3pFJZt/FilLDs7ezIBzHbTAdBgNVHQ4EFgQUfOepp/dW66vQ0heuTt2ETjlMRAMwDgYDVR0PAQH/BAQDAgQwMA0GCSqGSIb3DQEBCwUAA4IBAQAl88QDgTpmKI7h8R9IelwwXDnzPFrxE4p1CpqiFDtCIRogO2TdRUUyRampeFNfngD1cnx/gXX4qjGnPf9THDt1STcGJVkqA2/uqptuhgy+3BLqnRNXw5aahyjn0/4HyMDkTnBhV+HmoQlk4aUdhT6Gpg79OC61M16uJXOP3wFS4RIiU5JO3SpemJVpQH0GNuzJOfx6sgA1S5vBiyIgj0B86cdQ9hr/5KFXFCMsKw9RGNX5tikXvQMUgirOHsac7rKL/m4djdfoRYM1CcutVoZvVpEd9zZiMQKF5bXXIxzdFSW3JT+IUZ3oRQmuNJPc5/h3epYtELy58mWOZWWVZ49+</pkie:BankEncryptionCert><pkie:BankSigningCert>MIIEADCCAuigAwIBAgIFAMa3bfQwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xNDA3MDcwMDAwMDBaFw0xNjA2MjYwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJR04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwNDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAMTopJ9GZXRkKm4Rq9M92EawXIfSI7VL0sykOzLfBzrgYMpqJ7rFxJe7nzECw22TeQ/3m4Gjnhe8XVaKSUDbfYfWzWD44iiZfecMaDZYIyR3g7GMwQowfwTqHhSEjFgfzH3QuGH2KGmqycvyuNGsbWjzvDAov8Yf7F88A4aOkseISO3Vmt2ElKm+gs09z7pwak6OxegDu5ZySS39kpTvq1DK3w2vXkEQGJUYOnDG/723v/hK3GjxclViu1OGSga7UJApjm3ky4s9EWoumf/vLBAnqRp6biOKnkGmOJEJlT00VWjaRoDarKOjgC7b/05Xp0ynDSOwqvTI92BdAQwfgEsCAQOjUjBQMB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBSh3exlGZ8eC4EiAVvbxenmc9faUzAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBACjZJx8+UEcAYXJzstd+6E2wBNmmSvUTiuG7+Vws4+l4eqLLrHkhi66FOEwPdnf5/t8k7h5ry61aEf+HdUcQuYRrf7hJPkFjxaMcMGss4uURjVt/R/GhWMgu6cYgUIq0NHIMqdYH4dM/19qv7E+je2D3BuJOE3ucqe4Ywd+W2WP8HGlA3PkpMV78SPA9N/Usg3VX2KVbdS3idTpSMpxQftjWXmJtef0KawvYmYOw7i+eazHmv5mgxhgCvJSCPHN6oGS7v5AVVz9RCjSWEKIXZE0wRSLuTFYzt7/7CgRsdTVwpkFzn+ZJUAjYBPhZQ3Xn3p03DyCFsvtLxwE17UpUFUU=</pkie:BankSigningCert><pkie:BankRootCert>MIIEPzCCAyegAwIBAgIEQjoxcjANBgkqhkiG9w0BAQsFADCBmDEQMA4GA1UEAxMHREJHUk9PVDELMAkGA1UEBhMCREsxEzARBgNVBAcTCkNvcGVuaGFnZW4xEDAOBgNVBAgTB0Rlbm1hcmsxGjAYBgNVBAoTEURhbnNrZSBCYW5rIEdyb3VwMRowGAYDVQQLExFEYW5za2UgQmFuayBHcm91cDEYMBYGA1UEBRMPNjExMjYyMjgxMTEwMDAyMB4XDTEwMTAyNzAwMDAwMFoXDTIwMTAyNzAwMDAwMFowgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKWRtTRCXNEn5Hj+tA0vVg8VKUi/HnFgioZW/eyaF4gWvR4PNXXJJOS31VNHnb2SQHPLt3ac+5icH7vLu/OtS5rvnDiDFMg+TomVDrur6RtlsZNLnihZiaSaooI49+ERTz6vcCjST7xbfhmC03LUhE8eBKI1U70cx/lQ55UQKZvIAIbCVaZEks95VS4uJpwnU4M8glNIVGSvJhIUj/LIkSIcqBiryq/t9FRVtRl1gVhwKdi8A5O9hp4t3dBIdOanaup2UEL4lp7izzgt2rkMeuyQ1ZjHsN7LmDsfjoFcYx/8CID9LBwRCN2p+YCuoWUjuorrdU/2eit2lNh6ypiF6WECAQOjgZAwgY0wHQYDVR0OBBYEFIT65b/ekUlm38WKUsOzt7MgHMdtMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMEgGA1UdHwRBMD8wPaA7oDmGN2h0dHA6Ly9vbmxpbmUuZGFuc2tlYmFuay5jb20vcGtpL0RCR1JPT1RfMTExMTExMDAwMi5jcmwwDQYJKoZIhvcNAQELBQADggEBAFjnBPCos7jMMLc3FqyQUMt/HJGKgJDrhYiPZBo9njGkH52Urryqw1sbT3wXA1NuzbjHE3xTUD+5jNPCncYqML9xqQjSQkBcb9eJfHZ+asiclsO38cSn2qriJPIrCREPOpRVqrGQRbZQhmDiB198hpAdLp38khJon/gXbR7u9e0rN8MIM4sXn+lFuQIWiPuv+3llGSoLlIxJnjiQQ9FDjhwN5U+N1N2aHaLc5AHu4X/qRutLCy7AYUJZMPBoakPLscYceW2Ztvx4VAyOXgHDdvmz0Bd58XWOs1A9bNMZFeYAB14D9yQRCkXYLhr6sm8HuyqaIkGChFpNb+Gf8gcPvtw=</pkie:BankRootCert><pkie:RequestId/><Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
3
+ <SignedInfo>
4
+ <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
5
+ <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
6
+ <Reference URI="#response">
7
+ <Transforms>
8
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
9
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
10
+ </Transforms>
11
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
12
+ <DigestValue>MfXr7Uymp/9jlZfW4t+z/OTYTaU=</DigestValue>
13
+ </Reference>
14
+ </SignedInfo>
15
+ <SignatureValue>ujjgaemh9ppalpaqWcwbZ6Nvk218fpJJFsw2iuUbE1qdLMk47f8Z7Sii1siZG3V81jguC+8TDhoJp9H2OdACPB5qwol7vVG4Jev0q8mJNmkxJ9P5wXOJskxTELQ9OsdqzTKyAPTxjfQBsSGAISc0lAL66ART0CPvcnlGflttXtInRuGH2zk24AmIq0Ibe8OWb9c9bl43jHAe9G/0avt41ovngmwc5EaTrVEIhPWTemOYoWEARLo+YCjirPpJ93N6z9lGOk0VN5xVAJwNjOoi/wOu69wDzdbzlv19IbWI2IXJT7PDweLFWFPBupFJ+DfNvNzJeUemPTPXiRjHasn4dg==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIEADCCAuigAwIBAgIFAMa3bfQwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xNDA3MDcwMDAwMDBaFw0xNjA2MjYwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJR04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwNDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAMTopJ9GZXRkKm4Rq9M92EawXIfSI7VL0sykOzLfBzrgYMpqJ7rFxJe7nzECw22TeQ/3m4Gjnhe8XVaKSUDbfYfWzWD44iiZfecMaDZYIyR3g7GMwQowfwTqHhSEjFgfzH3QuGH2KGmqycvyuNGsbWjzvDAov8Yf7F88A4aOkseISO3Vmt2ElKm+gs09z7pwak6OxegDu5ZySS39kpTvq1DK3w2vXkEQGJUYOnDG/723v/hK3GjxclViu1OGSga7UJApjm3ky4s9EWoumf/vLBAnqRp6biOKnkGmOJEJlT00VWjaRoDarKOjgC7b/05Xp0ynDSOwqvTI92BdAQwfgEsCAQOjUjBQMB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBSh3exlGZ8eC4EiAVvbxenmc9faUzAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBACjZJx8+UEcAYXJzstd+6E2wBNmmSvUTiuG7+Vws4+l4eqLLrHkhi66FOEwPdnf5/t8k7h5ry61aEf+HdUcQuYRrf7hJPkFjxaMcMGss4uURjVt/R/GhWMgu6cYgUIq0NHIMqdYH4dM/19qv7E+je2D3BuJOE3ucqe4Ywd+W2WP8HGlA3PkpMV78SPA9N/Usg3VX2KVbdS3idTpSMpxQftjWXmJtef0KawvYmYOw7i+eazHmv5mgxhgCvJSCPHN6oGS7v5AVVz9RCjSWEKIXZE0wRSLuTFYzt7/7CgRsdTVwpkFzn+ZJUAjYBPhZQ3Xn3p03DyCFsvtLxwE17UpUFUU=</X509Certificate><X509IssuerSerial><X509IssuerName>serialNumber=611262281110002, OU=Danske Bank Group, O=Danske Bank Group, ST=Denmark, L=Copenhagen, C=DK, CN=DBGROOT</X509IssuerName><X509SerialNumber>3333910004</X509SerialNumber></X509IssuerSerial></X509Data></KeyInfo></Signature></pkie:GetBankCertificateResponse></GetBankCertificateOut></soapenv:Body></soapenv:Envelope>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pkif="http://danskebank.dk/PKI/PKIFactoryService"><env:Body><pkif:PKIFactoryServiceFault><pkif:CustomerId>(&amp;*(*</pkif:CustomerId><pkif:SenderId>(&amp;*(*</pkif:SenderId><pkif:RequestId>0182e1866b</pkif:RequestId><pkif:Timestamp>2014-08-06T11:02:12Z</pkif:Timestamp><pkif:InterfaceVersion>1</pkif:InterfaceVersion><pkif:ReturnCode>07</pkif:ReturnCode><pkif:ReturnText>Schema validation error.</pkif:ReturnText><pkif:AdditionalReturnText>http://127.0.0.1:8887/services/PkiService: cvc-simple-type 1: element {http://danskebank.dk/PKI/PKIFactoryService}SenderId value '(&amp;*(*' is not a valid instance of type {http://danskebank.dk/PKI/PKIFactoryService/elements}CustomerIdType</pkif:AdditionalReturnText></pkif:PKIFactoryServiceFault></env:Body></env:Envelope>
@@ -7,7 +7,7 @@ class NordeaApplicationRequestTest < ActiveSupport::TestCase
7
7
  # Convert the keys here since the conversion is usually done by the client and these tests
8
8
  # bypass the client
9
9
  @nordea_generic_params[:signing_private_key] = rsa_key @nordea_generic_params[:signing_private_key]
10
- @nordea_generic_params[:signing_certificate] = OpenSSL::X509::Certificate.new @nordea_generic_params[:signing_certificate]
10
+ @nordea_generic_params[:own_signing_certificate] = x509_certificate @nordea_generic_params[:own_signing_certificate]
11
11
 
12
12
  ar_file = Sepa::SoapBuilder.new(@nordea_generic_params).application_request
13
13
 
@@ -232,7 +232,7 @@ class NordeaApplicationRequestTest < ActiveSupport::TestCase
232
232
  "dsig|X509Certificate", 'dsig' => 'http://www.w3.org/2000/09/xmldsig#'
233
233
  ).content
234
234
 
235
- actual_certificate = @nordea_generic_params.fetch(:signing_certificate).to_s
235
+ actual_certificate = @nordea_generic_params.fetch(:own_signing_certificate).to_s
236
236
  actual_certificate = actual_certificate.split('-----BEGIN CERTIFICATE-----')[1]
237
237
  actual_certificate = actual_certificate.split('-----END CERTIFICATE-----')[0]
238
238
  actual_certificate.gsub!(/\s+/, "")
@@ -250,9 +250,7 @@ class NordeaApplicationRequestTest < ActiveSupport::TestCase
250
250
  test 'upload file should validate against schema' do
251
251
  Dir.chdir(SCHEMA_PATH) do
252
252
  xsd = Nokogiri::XML::Schema(IO.read('application_request.xsd'))
253
- xsd.validate(@doc_up).each do |error|
254
- puts error
255
- end
253
+ assert xsd.valid?(@doc_up)
256
254
  end
257
255
  end
258
256
 
@@ -34,10 +34,10 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
34
34
  @gui = Sepa::NordeaResponse.new(options).application_response
35
35
  @gui_doc = xml_doc @gui
36
36
 
37
- @dfl_ar = Sepa::ApplicationResponse.new(@dfl)
38
- @uf_ar = Sepa::ApplicationResponse.new(@uf)
39
- @df_ar = Sepa::ApplicationResponse.new(@df_tito)
40
- @gui_ar = Sepa::ApplicationResponse.new(@gui)
37
+ @dfl_ar = Sepa::ApplicationResponse.new(@dfl, :nordea)
38
+ @uf_ar = Sepa::ApplicationResponse.new(@uf, :nordea)
39
+ @df_ar = Sepa::ApplicationResponse.new(@df_tito, :nordea)
40
+ @gui_ar = Sepa::ApplicationResponse.new(@gui, :nordea)
41
41
  end
42
42
 
43
43
  def test_templates_valid
@@ -48,12 +48,12 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
48
48
  end
49
49
 
50
50
  def test_should_fail_if_initialized_with_invalid_xml
51
- as = Sepa::ApplicationResponse.new("Jees")
51
+ as = Sepa::ApplicationResponse.new("Jees", :nordea)
52
52
  refute as.valid?
53
53
  end
54
54
 
55
55
  def test_should_complain_if_ar_not_valid_against_schema
56
- as = Sepa::ApplicationResponse.new(Nokogiri::XML("<ar>text</ar>"))
56
+ as = Sepa::ApplicationResponse.new(Nokogiri::XML("<ar>text</ar>"), :nordea)
57
57
  refute as.valid?
58
58
  end
59
59
 
@@ -77,14 +77,14 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
77
77
  customer_id_node = @dfl_doc.at_css('c2b|CustomerId')
78
78
  customer_id_node.content = customer_id_node.content[0..-2]
79
79
 
80
- refute Sepa::ApplicationResponse.new(@dfl_doc.to_s).hashes_match?
80
+ refute Sepa::ApplicationResponse.new(@dfl_doc.to_s, :nordea).hashes_match?
81
81
  end
82
82
 
83
83
  def test_invalid_uf_hash_check_should_not_verify
84
84
  timestamp_node = @uf_doc.at_css('c2b|Timestamp')
85
85
  timestamp_node.content = Time.now.iso8601
86
86
 
87
- refute Sepa::ApplicationResponse.new(@uf_doc.to_s).hashes_match?
87
+ refute Sepa::ApplicationResponse.new(@uf_doc.to_s, :nordea).hashes_match?
88
88
  end
89
89
 
90
90
  def test_invalid_df_hash_check_should_not_verify
@@ -95,7 +95,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
95
95
 
96
96
  digest_value_node.content = digest_value_node.content[4..-1]
97
97
 
98
- refute Sepa::ApplicationResponse.new(@df_tito_doc.to_s).hashes_match?
98
+ refute Sepa::ApplicationResponse.new(@df_tito_doc.to_s, :nordea).hashes_match?
99
99
  end
100
100
 
101
101
  def test_invalid_gui_hash_check_should_not_verify
@@ -106,7 +106,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
106
106
 
107
107
  digest_value_node.content = '1234' + digest_value_node.content
108
108
 
109
- refute Sepa::ApplicationResponse.new(@gui_doc.to_s).hashes_match?
109
+ refute Sepa::ApplicationResponse.new(@gui_doc.to_s, :nordea).hashes_match?
110
110
  end
111
111
 
112
112
  def test_proper_dfl_signature_should_verify
@@ -133,7 +133,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
133
133
 
134
134
  signature_node.content = signature_node.content[4..-1]
135
135
 
136
- refute Sepa::ApplicationResponse.new(@dfl_doc.to_s).signature_is_valid?
136
+ refute Sepa::ApplicationResponse.new(@dfl_doc.to_s, :nordea).signature_is_valid?
137
137
  end
138
138
 
139
139
  def test_corrupted_signature_in_uf_should_fail_signature_verification
@@ -144,7 +144,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
144
144
 
145
145
  signature_node.content = signature_node.content[0..-5]
146
146
 
147
- refute Sepa::ApplicationResponse.new(@uf_doc.to_s).signature_is_valid?
147
+ refute Sepa::ApplicationResponse.new(@uf_doc.to_s, :nordea).signature_is_valid?
148
148
  end
149
149
 
150
150
  def test_corrupted_signature_in_df_should_fail_signature_verification
@@ -155,7 +155,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
155
155
 
156
156
  signature_node.content = 'a' + signature_node.content[1..-1]
157
157
 
158
- refute Sepa::ApplicationResponse.new(@df_tito_doc.to_s).signature_is_valid?
158
+ refute Sepa::ApplicationResponse.new(@df_tito_doc.to_s, :nordea).signature_is_valid?
159
159
  end
160
160
 
161
161
  def test_corrupted_signature_in_gui_should_fail_signature_verification
@@ -166,7 +166,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
166
166
 
167
167
  signature_node.content = 'zombi' + signature_node.content[1..-1]
168
168
 
169
- refute Sepa::ApplicationResponse.new(@gui_doc.to_s).signature_is_valid?
169
+ refute Sepa::ApplicationResponse.new(@gui_doc.to_s, :nordea).signature_is_valid?
170
170
  end
171
171
 
172
172
  def test_should_raise_error_if_certificate_corrupted_in_dfl
@@ -178,7 +178,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
178
178
  cert_node.content = cert_node.content[0..-5]
179
179
 
180
180
  assert_raises(OpenSSL::X509::CertificateError) do
181
- Sepa::ApplicationResponse.new(@dfl_doc.to_s).certificate
181
+ Sepa::ApplicationResponse.new(@dfl_doc.to_s, :nordea).certificate
182
182
  end
183
183
  end
184
184
 
@@ -191,7 +191,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
191
191
  cert_node.content = cert_node.content[4..-1]
192
192
 
193
193
  assert_raises(OpenSSL::X509::CertificateError) do
194
- Sepa::ApplicationResponse.new(@uf_doc.to_s).certificate
194
+ Sepa::ApplicationResponse.new(@uf_doc.to_s, :nordea).certificate
195
195
  end
196
196
  end
197
197
 
@@ -204,7 +204,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
204
204
  cert_node.content = "n5iw#{cert_node.content}"
205
205
 
206
206
  assert_raises(OpenSSL::X509::CertificateError) do
207
- Sepa::ApplicationResponse.new(@df_tito_doc.to_s).certificate
207
+ Sepa::ApplicationResponse.new(@df_tito_doc.to_s, :nordea).certificate
208
208
  end
209
209
  end
210
210
 
@@ -217,24 +217,19 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
217
217
  cert_node.content = encode 'voivoi'
218
218
 
219
219
  assert_raises(OpenSSL::X509::CertificateError) do
220
- Sepa::ApplicationResponse.new(@gui_doc.to_s).certificate
220
+ Sepa::ApplicationResponse.new(@gui_doc.to_s, :nordea).certificate
221
221
  end
222
222
  end
223
223
 
224
- def test_cert_should_be_trusted_with_correct_root_cert
225
- root_cert = OpenSSL::X509::Certificate.new File.read("#{KEYS_PATH}/root_cert.cer")
226
- assert @dfl_ar.cert_is_trusted(root_cert)
227
- assert @uf_ar.cert_is_trusted(root_cert)
228
- assert @df_ar.cert_is_trusted(root_cert)
229
- assert @gui_ar.cert_is_trusted(root_cert)
224
+ test 'certificate is trusted with correct root certificate' do
225
+ assert @dfl_ar.certificate_is_trusted?
226
+ assert @uf_ar.certificate_is_trusted?
227
+ assert @df_ar.certificate_is_trusted?
228
+ assert @gui_ar.certificate_is_trusted?
230
229
  end
231
230
 
232
- def test_should_fail_if_wrong_root_cert
233
- not_root_cert = OpenSSL::X509::Certificate.new File.read("#{KEYS_PATH}/nordea.crt")
234
- assert_raises(SecurityError) { @dfl_ar.cert_is_trusted(not_root_cert) }
235
- assert_raises(SecurityError) { @uf_ar.cert_is_trusted(not_root_cert) }
236
- assert_raises(SecurityError) { @df_ar.cert_is_trusted(not_root_cert) }
237
- assert_raises(SecurityError) { @gui_ar.cert_is_trusted(not_root_cert) }
231
+ # TODO: Implement test
232
+ test 'certificate is not trusted with incorrect root certificate' do
238
233
  end
239
234
 
240
235
  test 'to_s works' do
@@ -8,7 +8,7 @@ class NordeaGenericSoapBuilderTest < ActiveSupport::TestCase
8
8
  # Convert the keys here since the conversion is usually done by the client and these tests
9
9
  # bypass the client
10
10
  @nordea_generic_params[:signing_private_key] = rsa_key @nordea_generic_params[:signing_private_key]
11
- @nordea_generic_params[:signing_certificate] = OpenSSL::X509::Certificate.new @nordea_generic_params[:signing_certificate]
11
+ @nordea_generic_params[:own_signing_certificate] = x509_certificate @nordea_generic_params[:own_signing_certificate]
12
12
 
13
13
  @soap_request = Sepa::SoapBuilder.new(@nordea_generic_params)
14
14
  @doc = Nokogiri::XML(@soap_request.to_xml)
@@ -137,7 +137,7 @@ class NordeaGenericSoapBuilderTest < ActiveSupport::TestCase
137
137
  "//wsse:BinarySecurityToken", 'wsse' => wsse
138
138
  ).first.content
139
139
 
140
- actual_certificate = @nordea_generic_params.fetch(:signing_certificate).to_s
140
+ actual_certificate = @nordea_generic_params.fetch(:own_signing_certificate).to_s
141
141
  actual_certificate = actual_certificate.split('-----BEGIN CERTIFICATE-----')[1]
142
142
  actual_certificate = actual_certificate.split('-----END CERTIFICATE-----')[0]
143
143
  actual_certificate = actual_certificate.gsub(/\s+/, "")
@@ -39,6 +39,30 @@ class NordeaResponseTest < ActiveSupport::TestCase
39
39
  command: :get_certificate
40
40
  }
41
41
  @gc = Sepa::NordeaResponse.new options
42
+
43
+ options = {
44
+ response: File.read("#{NORDEA_TEST_RESPONSE_PATH}/not_ok_response_code.xml"),
45
+ command: :download_file_list
46
+ }
47
+ @not_ok_response_code_response = Sepa::NordeaResponse.new options
48
+
49
+ options = {
50
+ response: File.read("#{NORDEA_TEST_RESPONSE_PATH}/download_file_list_no_content.xml"),
51
+ command: :download_file_list
52
+ }
53
+ @response_with_code_24 = Sepa::NordeaResponse.new options
54
+
55
+ options = {
56
+ response: File.read("#{NORDEA_TEST_RESPONSE_PATH}/invalid/timestamp_altered.xml"),
57
+ command: :download_file_list
58
+ }
59
+ @timestamp_altered = Sepa::NordeaResponse.new options
60
+
61
+ options = {
62
+ response: File.read("#{NORDEA_TEST_RESPONSE_PATH}/invalid/body_altered.xml"),
63
+ command: :upload_file
64
+ }
65
+ @body_altered = Sepa::NordeaResponse.new options
42
66
  end
43
67
 
44
68
  def test_should_be_valid
@@ -51,37 +75,69 @@ class NordeaResponseTest < ActiveSupport::TestCase
51
75
  end
52
76
 
53
77
  def test_should_fail_with_improper_params
54
- a = Sepa::Response.new({ response: "Jees", command: 'not'})
78
+ a = Sepa::NordeaResponse.new({ response: "Jees", command: 'not'})
55
79
  refute a.valid?
56
80
  end
57
81
 
58
82
  def test_should_complain_if_ar_not_valid_against_schema
59
- a = Sepa::Response.new({ response: "<ar>text</ar>", command: 'notvalid' })
83
+ a = Sepa::NordeaResponse.new({ response: "<ar>text</ar>", command: 'notvalid' })
60
84
  refute a.valid?
61
85
  end
62
86
 
63
- def test_hashes_match_works
64
- assert @gui.hashes_match?
87
+ test 'hashes should match with correct responses' do
88
+ assert @df_ktl.hashes_match?
89
+ assert @df_tito.hashes_match?
65
90
  assert @dfl.hashes_match?
91
+ assert @response_with_code_24
92
+ assert @gc.hashes_match?
93
+ assert @gui.hashes_match?
94
+ assert @not_ok_response_code_response.hashes_match?
66
95
  assert @uf.hashes_match?
67
- assert @df_tito.hashes_match?
68
96
  end
69
97
 
70
- def test_cert_check_should_work
71
- keys_path = File.expand_path('../keys', __FILE__)
72
- root_cert = OpenSSL::X509::Certificate.new File.read("#{keys_path}/root_cert.cer")
73
- not_root_cert = OpenSSL::X509::Certificate.new File.read("#{keys_path}/nordea.crt")
98
+ test 'response should be valid if hashes match and otherwise valid' do
99
+ assert @df_ktl.valid?
100
+ assert @df_tito.valid?
101
+ assert @dfl.valid?
102
+ assert @response_with_code_24
103
+ assert @gc.valid?
104
+ assert @gui.valid?
105
+ assert @uf.valid?
106
+ end
74
107
 
75
- assert @dfl.cert_is_trusted(root_cert)
76
- assert_raises(SecurityError) do
77
- @dfl.cert_is_trusted(not_root_cert)
78
- end
108
+ test 'hashes should not match with incorrect responses' do
109
+ refute @timestamp_altered.hashes_match?
110
+ refute @body_altered.hashes_match?
79
111
  end
80
112
 
81
- def test_signature_check_should_work
113
+ test 'response should not be valid if hashes dont match' do
114
+ refute @timestamp_altered.valid?
115
+ refute @body_altered.valid?
116
+ end
117
+
118
+ test 'certificate verifying against root certificate works' do
119
+ assert @dfl.certificate_is_trusted?
120
+ end
121
+
122
+ # TODO: Implement test
123
+ test 'response should not be valid when wrong certificate is embedded in soap' do
124
+
125
+ end
126
+
127
+ test 'signature should verify with correct responses' do
128
+ assert @df_ktl.signature_is_valid?
129
+ assert @df_tito.signature_is_valid?
82
130
  assert @dfl.signature_is_valid?
83
- @dfl.doc.at('xmlns|SignatureValue', 'xmlns' => DSIG).content = "kissa"
84
- refute @dfl.signature_is_valid?
131
+ assert @response_with_code_24.signature_is_valid?
132
+ assert @gc.signature_is_valid?
133
+ assert @gui.signature_is_valid?
134
+ assert @not_ok_response_code_response.signature_is_valid?
135
+ assert @uf.signature_is_valid?
136
+ end
137
+
138
+ test 'signature should not verify if its integrity has been compromised' do
139
+ refute @timestamp_altered.signature_is_valid?
140
+ refute @body_altered.signature_is_valid?
85
141
  end
86
142
 
87
143
  test 'to_s works' do
@@ -131,8 +187,18 @@ class NordeaResponseTest < ActiveSupport::TestCase
131
187
 
132
188
  test 'certificate can be extracted from get certificate response' do
133
189
  assert_nothing_raised do
134
- OpenSSL::X509::Certificate.new @gc.own_signing_certificate
190
+ x509_certificate @gc.own_signing_certificate
135
191
  end
136
192
  end
137
193
 
194
+ test 'response with a response code other than 00 or 24 is considered invalid' do
195
+ refute @not_ok_response_code_response.valid?
196
+ refute_empty @not_ok_response_code_response.errors.messages
197
+ end
198
+
199
+ test 'response with a response code of 24 is considered valid' do
200
+ assert @response_with_code_24.valid?
201
+ assert_empty @response_with_code_24.errors.messages
202
+ end
203
+
138
204
  end
@@ -1,45 +1,21 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <soapenv:Envelope xmlns:mod="http://model.bxd.fi" xmlns:cor="http://bxd.fi/CorporateFileService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
3
- <soapenv:Header>
4
- <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
5
- <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-90e1ab2c-3cd1-4880-847d-395658c73659">
6
- <wsu:Created>2014-06-10T13:31:48Z</wsu:Created>
7
- <wsu:Expires>2014-06-10T13:36:48Z</wsu:Expires>
8
- </wsu:Timestamp>
9
- <wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="SecurityToken-674b41de-bc40-4398-af35-f32a2d2fcb25" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">MIID8TCCAtmgAwIBAgIEAVl8HjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQGEwJTRTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMSYwJAYDVQQDEx1Ob3JkZWEgQ29ycG9yYXRlIFNlcnZlciBDQSAwMTEUMBIGA1UEBRMLNTE2NDA2LTAxMjAwHhcNMTIwODE2MDgxMTU5WhcNMTQwODE2MDgxMTU5WjB+MQswCQYDVQQGEwJTRTEeMBwGA1UECgwVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMSowKAYDVQQLDCFOZXRiYW5raW5nICYgSW50ZWdyYXRpb24gU2VydmljZXMxIzAhBgNVBAMMGkZpbGUgVHJhbnNmZXIgV2ViIFNlcnZpY2VzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGJqLvjTiaM+yotCeskYoeP/c2EF0/xJi07v1J8RuAr1Mu2NU6tel3OsUTmmwVY+GSxsCi6gk+1KvLVPgWmqErDahVryHw3mnFlrrklXcITtUaw7OBa+xrj3sSSBOoneRanqWFH2tlDj1raVBEQJTxx3mjIoawPIHfS/w8DI9utQIDAQABo4IBDDCCAQgwCQYDVR0TBAIwADARBgNVHQ4ECgQISvFVB9v7eZowEwYDVR0jBAwwCoAIRMeT2dl7VsEwNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5ub3JkZWEuc2UvU0NBMDEwDgYDVR0PAQH/BAQDAgWgMIGJBgNVHR8EgYEwfzB9oHugeYZ3bGRhcDovL2xkYXAubmIuc2UvY249Tm9yZGVhJTIwQ29ycG9yYXRlJTIwU2VydmVyJTIwQ0ElMjAwMSxvPU5vcmRlYSUyMEJhbmslMjBBQiUyMChwdWJsKSxjPVNFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwDQYJKoZIhvcNAQEFBQADggEBAIZbzaxoJUVGCPMKQseFs7E+g//HZbed1ZNVQ8vRy/+L7ieIWKczLWrMvHZd8Gp+84QAC5dKrHD+BsWBUp5VLnVWH6f6EGzSHdaV9FCMRqHDzMzdfpavRYHm+vtF3k+bxt2f6znPmo0bYBtRjuvuLX0MLnnLaabTJ3p2aspAIZ4QXC7XPTG1RXVdbNUVROYWuviPkF4VUrdHMHQrwzHV40mVZ0JDJDIuNELMELdR37lyt0k6NBOorQEbDiqOZvdf5G4Vr0IpgS2Q/zorOUkcKkdJx8rQ9ygUmeFGhd8U3BWsMzkJd8kkKeaNME/K9aTotrTh2iTOZgrOIo83AhoNfZw=</wsse:BinarySecurityToken>
10
- <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
11
- <SignedInfo>
12
- <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
13
- <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
14
- <Reference URI="#Timestamp-90e1ab2c-3cd1-4880-847d-395658c73659">
15
- <Transforms>
16
- <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
17
- </Transforms>
18
- <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
19
- <DigestValue>mXJGlPSht+Lvaoptu094uRk/JTs=</DigestValue>
20
- </Reference>
21
- <Reference URI="#Body-6f1f55ed-074a-48d4-b377-004ba63bc235">
22
- <Transforms>
23
- <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
24
- </Transforms>
25
- <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
26
- <DigestValue>Te/Ko44e7exMi+5UKJykJR4LAnc=</DigestValue>
27
- </Reference>
28
- </SignedInfo>
29
- <SignatureValue>HereTQHOSxGrBP7dgd411/u0I3BDSnW3cYL4xPjdzvlsHl451WUH8uc3EQQtueZpxG7Ijnhu+XVXry/HAu9Xfr2ARct9XO1k/KTkXWOJtsiljVHQY94ox7Ku/QeunVy8l39XBClBhJczEehnHLwQfuNRpjVBXAgESj0NoyQ1c2M=</SignatureValue><KeyInfo><wsse:SecurityTokenReference xmlns=""><wsse:Reference URI="#SecurityToken-674b41de-bc40-4398-af35-f32a2d2fcb25" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></KeyInfo></Signature>
30
- </wsse:Security>
31
- </soapenv:Header>
32
- <soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Body-6f1f55ed-074a-48d4-b377-004ba63bc235">
33
- <cor:downloadFileout>
34
- <mod:ResponseHeader>
35
- <mod:SenderId>11111111</mod:SenderId>
36
- <mod:RequestId>c665330d3c25d6d0b0956b21762999e253</mod:RequestId>
37
- <mod:Timestamp>2014-06-10T15:31:48+02:00</mod:Timestamp>
38
- <mod:ResponseCode>00</mod:ResponseCode>
39
- <mod:ResponseText>OK.</mod:ResponseText>
40
- <mod:ReceiverId>11111111A1</mod:ReceiverId>
41
- </mod:ResponseHeader>
42
- <mod:ApplicationResponse>PGMyYjpBcHBsaWNhdGlvblJlc3BvbnNlIHhtbG5zOmMyYj0iaHR0cDovL2J4ZC5maS94bWxkYXRhLyI+PGMyYjpDdXN0b21lcklkPjExMTExMTExPC9jMmI6Q3VzdG9tZXJJZD48YzJiOlRpbWVzdGFtcD4yMDE0LTA2LTEwVDE1OjMxOjQ4KzAyOjAwPC9jMmI6VGltZXN0YW1wPjxjMmI6UmVzcG9uc2VDb2RlPjAwPC9jMmI6UmVzcG9uc2VDb2RlPjxjMmI6UmVzcG9uc2VUZXh0Pk9LLjwvYzJiOlJlc3BvbnNlVGV4dD48YzJiOkVuY3J5cHRlZD5mYWxzZTwvYzJiOkVuY3J5cHRlZD48YzJiOkNvbXByZXNzZWQ+ZmFsc2U8L2MyYjpDb21wcmVzc2VkPjxjMmI6Q29udGVudD5NREEyTURNd016SXpOVGt5SURBeE1URXhNVEV4TVRFME5EUTBORFEwTkVFd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdEUW96TWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNREl3TXpBeU5VeE5JQ0FnSURjd01ETTFNREF3TURBd01EQXdNREF3TURBME5UVTBNelZOUVV0VFFVcEJJRTFCVkZReFFUQXdNREF3TURRMU9UY3hRVEFOQ2pNeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TWpBek1ESTFURTBnSUNBZ01UQXlNakV3TURBd01EQXdNREF3TURBd01EZzBORFkzTjAxQlFVdEJVa2tnVDFrZ0lERkJNREF3TURBd01EYzROREZCTUEwS016STVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBeU1ETXdNamc0T0NBZ0lDQTBNREE0TlRBd01EQXdNREF3TURBd01EWXlPVE0zTXpBeVUxVlBUVVZPSUZsU1NWUlpNVXN3TURBd01EQXdOelF6TVVzd0RRb3pNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ETXdNekF6TWpVNE9EYzVNRFV3TWpJeU1EQXdNREF3TURBd01EQXdNREE0TkRRMk56ZE5RVUZVU1V4QklFOVpJQ0F4U2pBd01EQXdNRGd3TmpBd1FUQU5Dak15T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMk1ETXdNekF6TURNeU5UZzROemt3TVRBeU1Ua3dNREF3TURBd01EQXdNREF3TURnME5EWTNOMUJWVlZSQlVraFZVa2tnU3pGS01EQXdNREF3Tnpnek1EQkJNQTBLTXpJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF6TURNd016STFPRGMzTVVFeU1EQTRNREF3TURBd01EQXdNREF3TURBd09Ea3dPVEl5VEVGT1MwbE9SVTRnVEVWSk1Vb3dNREF3TURBNE5qa3dNRUV3RFFvek1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXpNamsxTUZCVE1USXdNRFU0TURBd01EQXdNREF3TURBd01EQTRPVEE1TkRoTldWbFNXU0JXU1V4S1R5QXhTekF3TURBd01EWTBPVEF3UVRBTkNqTXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNRE15TlRnNE56ZEJOVEF6TURZd01EQXdNREF3TURBd01EQXdNalV6TlRNeE1VVlNTVk5VUlZSVlQwNVVTVEZLTURBd01EQXdOalF5TURCQk1BMEtNekk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXpNRE13TXpJMU9EaFhWMEZWTURFd056QXdNREF3TURBd01EQXdNREF5TlRNMU16STBVbFZWVmtrZ1NrRWdUVlZVTVVvd01EQXdNREE1TmpFd01FRXdEUW96TWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNRE13TXpBek1qVTRPRGM0UVRNMU1URTBNREF3TURBd01EQXdNREF3TURJMU16VXpNemRXUlV4QlRFeEpUa1ZPSUVVeFNqQXdNREF3TVRRNU1EQXdRVEFOQ2pNeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TXpBek1ETXlOVGc0Tnpnd01UQXhOalV3TURBd01EQXdNREF3TURBd016QTRPREU0TjB0VlRVMUJTa0ZKVGtWT0lERktNREF3TURBd05qVTNOakJCTUEwS016STVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBek1ETXdNekkxT0RnM09FRTRNVEl3TXpBd01EQXdNREF3TURBd01EQTFPVFF5TlRZeFVGVk9WRlJKSUZCQlFWWlBNVW93TURBd01ERTBNRGt3TUVFd0RRb3pNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ESXdNekF5T0VNeE1EQXdORFF6TmpRek1EQXdNREF3TURBd01EQXdNRFkyTnpnM05UTlNWVTlMUVUxQlNrRWdXVkl4UVRBd01EQXhPRE0wTWpJd1FUQU5Dak15T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMU1ETXdNakF6TURJMU1EQXdNVFUwTWpBd056WXdNREF3TURBd01EQXdNREF3TnpNNE9ERXdOMGhQVkVWTVRFbExSVlJLVlRGTE1EQXdNREUxTWpjek1EQkxNQTBLTXpJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF6TURNd016STFPRGczT1RBNU1EQTJPVEF3TURBd01EQXdNREF3TURBNU16WXpPVGszVUU5TlRVa2dTa0VnVUVGTk1Vb3dNREF3TURBM016RXpNRUV3RFFvek1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXpNalU0T0RjNFZVRTBNRE16TURBd01EQXdNREF3TURBd05EY3hNVEk1TlRGUVQwaEtRVTVNU1U1T1FVNHhTakF3TURBd01EWTJOVEF3UVRBTkNqTXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNRE15TlRnNE56aEdRVFF3TkRFd01EQXdNREF3TURJeU9UQXdNREE1TkRJM09WQkZURlJKVkZWTFMxVWdTekZLTURBd01EQXhNRGMyT1RCQk1BMEtNekk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXpNRE13TXpJMU9EaFhWMDVETURFeU5qQXdNREF3TURBd01qTXdNREF3TURreE16azNVRVZNVkU5TVFTQlFSVTVVTVVvd01EQXdNREV6TVRFd01FRXdEUW96TWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNRE13TXpBek1qVTRPRGMzUVRrd01USTFNREF3TURBd01EQXlNekF3TURBd09UUXlPRFJRU1V0QlZGVkxTMVVnU1V3eFNqQXdNREF3TURneE9UUXdRVEFOQ2pNeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TXpBek1ETXhPVFV3UVVFeE16QXhNRFV3TURBd01EQXdNREl6TkRBd01EQTVOVE0xTjAxQlRrNUpURUVnVFVGSlNqRkxNREF3TURBd09EVTJNREJMTUEwS016STVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBek1ETXdNekkxT0RnM04wRlRNREE1T0RBd01EQXdNREF3TkRZMU1EQXdNRGt4TmpFeVRsVlVWRlZPUlU0Z1RrbE9NVW93TURBd01ERXpOVEV3TUVFd0RRb3pNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ETXdNekF6TWpVNE9EYzNRa0k1TnpBek1EQXdNREF3TURBME9USXdNREF3T1RVMU5ESldRVUZVVkZWU1NTQldSVkl4U2pBd01EQXdNRGN5TWpRd1FUQU5Dak15T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMk1ETXdNekF6TURNeU5UZzROemt3TXpnMk16SXdNREF3TURBd01EVXhPREF3TURBNU5UVTJOVkpCVlZSQlMwRk1URWxQVGpGS01EQXdNREF5T0RRMk1EQkJNQTBLTXpJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF6TURNd016STFPRGczTjBFeU1qSXhPVEF3TURBd01EQXdPREV3TURBd01EazBOalU1VUU5SVNrRWdUMU5WVlZOTE1Vb3dNREF3TURBME9UVXdNRUV3RFFvek1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXpNalU0T0RjM1FUa3dNVEUwTURBd01EQXdNREE0TWpBd01EQXdPVGd3TXpCTlJWTlVRVkpKSUUxQlRsVXhTakF3TURBd01URXlNakF3UVRBTkNqTXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNRE15TlRnNE56ZENRVEV5TWpJd01EQXdNREF3TURneU5UQXdNREE1TVRneU5VNVZVazFKVTBWT0lFeEpTVEZLTURBd01EQXdPREF4TXpCQk1BMEtNekk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXpNRE13TXpJMU9EZzNOMFF5TURBMU5EQXdNREF3TURBd09EUXdNREF3TURrMU56WTNSVkpKUzA5SlUxUkZTMDVKTVVvd01EQXdNREE1TlRNd01FRXdEUW8xTWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNRE13TXpBek1qVTRPRGN6TVVzd01EQTFNREF3TURBd01EQXdNREF3TlRZeE1qTTJNVFJMU1ZaSlRrVk9JRkpGVkZVeFNqQXdNREF3TURjNE5EQXdRVEFOQ2pVeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TXpBek1ESXlOVGc0TnpNeFN6RXlNelF3TURBd01EQXdNREF3TURBMU5qRXlNell5TjFOUFVrRk9SVTRnVkVGVVZURktNREF3TURBeE5EWTFNREJCTUEwS05USTVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBek1ETXdNakkxT0RnM016RkxNREE0TlRBd01EQXdNREF3TURBd01EVTJNVEl6TmpNd1ZFbEpWa2tnVkVGQlZra3dNVW93TURBd01ERXhNakl3TUVFd0RRbzFNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ETXdNekF5TWpVNE9EY3pNVXN3TURFeE1EQXdNREF3TURBd01EQXdOVFl4TWpNMk5ETklRVTVJU1NCSVFVNU9WU0F4U2pBd01EQXdNRGd3TmpBd1FUQU5DalV5T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMk1ETXdNekF6TURJeU5UZzROek14U3pBd01qSXdNREF3TURBd01EQXdNREExTmpFeU16WTFOa3BWVDA1SlR5QktWVk5UU1RGQk1EQXdNREF3T1RZME1UQkJNUTBLTlRJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF6TURNd01qSTFPRGczTXpGTE1EQXdPREF3TURBd01EQXdNREF3TURVMk1USTBNVEl4VFVGSlRrbFBJRTFCVkZSSk1Vb3dNREF3TURNM016Y3dNRUV3RFFvMU1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXlNalU0T0Rjek1Vc3dNRFU0TURBd01EQXdNREF3TURBd05UWXhNalF4TXpSTFNWWkpUa1ZPSUZOSlVsVXhTakF3TURBd01qWTBPVEF3UVRBTkNqVXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNREl5TlRnNE56TXhTekEzTURZd01EQXdNREF3TURnd01EQTFOakV5TkRFME4wcFBSVTVUVlZVZ1JVeE1TVEZLTURBd01EQXdOalF5TURCQk1BMEtOVEk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXpNRE13TWpJMU9EZzNNekZMTURJek1UQXdNREF3TURBd09EQXdNRFUyTVRJME1UVXdVMVZQVFVGTVFVbE9SVTRnTVVvd01EQXdNREU1TmpFd01FRXdEUW8xTWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNREl3TXpBeU5VeE5JQ0FnSURBMU1URTBNREF3TURBd01EQXdNREF3TlRZeE1qUTFNekpTVlU5VVUwRk1RVWxPUlU0eFFUQXdNREF3TVRRNU1EQXdRVEFOQ2pVeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TWpBek1ESTFURTBnSUNBZ01UQXhOalV3TURBd01EQXdNREF3TURBMU5qRXlORFUwTlV4RlNWQlBUVThnVEVsTlVERkJNREF3TURBMk5UYzJNREJCTUEwS05USTVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBek1ETXdNekkxT0RnM016RkxNVEl3TXpBd01EQXdNREF3TURFNE5UQXdNRGszTVRNMlUwRk1UVWtnUVVORFNTQWdNVW93TURBd01ERTVNRGt3TUVFd0RRbzFNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ETXdNekF6TlV4TklDQWdNRGt3TXpNek1EQXdNREF3TURBd01UZzFNREF3T1RnM09ESkxWVlJXVDA1RlRpQkxRVWt4UVRBd01EQXdNRGsxTWpBd1FUQU5DalV5T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMk1ETXdNekF6TURNeU5UZzROek14U3pBd056WXdNREF3TURBd01EQTJOREF3TURBNU5ERTRPRXRWUzBGTVNVVWdSVTFOU1RGS01EQXdNREF3TnpRMU1EQkJNQTBLTlRJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF5TURNd01qVk1UU0FnSURjNU1EQTJPVEF3TURBd01EQXdNRGMwTlRBd01Ea3pOREEwVkVsTlVGVlNTU0JGVTB0UE1VRXdNREF3TURjek1UTXdNRUV3RFFvMU1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXpNalU0T0Rjek1Vc3dNRGs1TURBd01EQXdNREF5TWprd01EQXdPVEV6T0RKUVNVdExRVTVGVGlCUVNVRXhRVEF3TURBd01ESTBOall3UVRJTkNqVXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNRE15TlRnNE56TXhTekF3TmpVd01EQXdNREF3TURJeU9UQXdNREE1TkRJM09WWkpTVlpKSmxkQlIwNUZVakZLTURBd01ERXdOelk1TURCQk1BMEtOVEk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXlNRE13TWpVd01ERXdNVEU1TURFeU5qQXdNREF3TURBd01qTXdNREF3TURreE16azNVRlZWVmtsTVRFRWdTMVZVTVVzd01EQXdNREUwTVRFd01FRXdEUW8xTWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNRE13TXpBeU1qVTRPRGN6TVVzd09UQTRNREF3TURBd01EQXlNekF3TURBd09UUXlPRFJUVlV0TVFVRlFWVTlVU1NBeFNqQXdNREF3T0RFNU5EQXdRVEFOQ2pVeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TXpBek1ESXlOVGc0TnpNeFN6QTNNRFV3TURBd01EQXdNREl6TkRBd01EQTVOVE0xTjBWT1ZFbE9SVTRnUlVsTVFURktNREF3TURBd09EVTJNREJCTUEwS05USTVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBek1ETXdNakkxT0RnM016RkxNREE1T1RBd01EQXdNREF3TkRZMU1EQXdNRGt4TmpFeVMwbEZTMVVtUzBGSlMxVWdNVW93TURBd01ERXpOVEV3TUVFd0RRbzFNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ETXdNekF5TWpVNE9EY3pNVXN3T1RneU1EQXdNREF3TURBME9USXdNREF3T1RVMU5ESk9RVXRWVkZSQlNrRWdUa0V4U2pBd01EQXdOekl5TkRBd1FUQU5DalV5T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMk1ETXdNekF6TURJeU5UZzROek14U3prM09Ea3dNREF3TURBd01EVXhPREF3TURBNU5UVTJOVUZPUTB0QklFbE9SVk1nSURGS01EQXdNREF5T0RRMk1EQkJNQTBLTlRJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF6TURNd01qSTFPRGczTXpGTE1EQTBOREF3TURBd01EQXdPREV3TURBd01EazBOalU1UVVsTFFVbE9SVTRnUVVGTk1Vb3dNREF3TURFMk9UVXdNRUV3RFFvMU1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXlNalU0T0Rjek1Vc3dNREUwTURBd01EQXdNREE0TWpBd01EQXdPVGd3TXpCTldWbFNXeUJOUVZSSlFWTXhTakF3TURBd01URXlOVEF3UVRBTkNqVXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNREl5TlRnNE56TXhTekE1T0RJd01EQXdNREF3TURneU5UQXdNREE1TVRneU5WSkZTVkJCVXlCU1NWTlVUekZLTURBd01EQXlNRGsyTURCQk1BMEtOVEk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXpNRE13TWpJMU9EZzNNekpMTURBd01UQXdNREF3TURBd09EUXdNREF3TURrMU56WTNVa1ZRVDB4QlNVNUZUaUJMTVVvd01EQXdNREF5TXpreU1FRTBEUW81TURBd01EUTRNREF3TURFeU5UTTFNREV3TURBd01ETXdNREF3TURBd05qRXlOREF3TURBd016QXdNREF3TURFME5EazVNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREFOQ2c9PTwvYzJiOkNvbnRlbnQ+PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CjxTaWduZWRJbmZvPgogIDxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sLWMxNG4tMjAwMTAzMTUiLz4KICA8U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIi8+CiAgPFJlZmVyZW5jZSBVUkk9IiI+CiAgICA8VHJhbnNmb3Jtcz4KICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+CiAgICAgIDxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSIvPgogICAgPC9UcmFuc2Zvcm1zPgogICAgPERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIi8+CiAgICA8RGlnZXN0VmFsdWU+Y1Bndk5ZR251aklLSWs1dEI5OWsraGQ5Tk1zPTwvRGlnZXN0VmFsdWU+CiAgPC9SZWZlcmVuY2U+CjwvU2lnbmVkSW5mbz4KICAgIDxTaWduYXR1cmVWYWx1ZT5iY0JMeDMrcS8rTlpKZjBlRFdjTCtqVFB4amgzcUJZaTVaOXR6SVpwSkNsZVFQVGJZcEFMTTNscFFLVjlZWjZoN29SZ2V5SkVBQ2JBODZFU0ROaTZMZ0tBTllKZ2MyRUIvd2FsVE1QSWdvbVlrQU8wN1RQVXl0QS9VQXBVSW5ZQTI2TTlJempIVDFvQkdKcXQ0UHc3aXhkRjR3Ni9CYXFyUGJWTjhrS2tWMGc9PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE+PFg1MDlDZXJ0aWZpY2F0ZT5NSUlEOFRDQ0F0bWdBd0lCQWdJRUFWbDhIakFOQmdrcWhraUc5dzBCQVFVRkFEQnJNUXN3Q1FZRFZRUUdFd0pUUlRFZU1Cd0dBMVVFQ2hNVlRtOXlaR1ZoSUVKaGJtc2dRVUlnS0hCMVltd3BNU1l3SkFZRFZRUURFeDFPYjNKa1pXRWdRMjl5Y0c5eVlYUmxJRk5sY25abGNpQkRRU0F3TVRFVU1CSUdBMVVFQlJNTE5URTJOREEyTFRBeE1qQXdIaGNOTVRJd09ERTJNRGd4TVRVNVdoY05NVFF3T0RFMk1EZ3hNVFU1V2pCK01Rc3dDUVlEVlFRR0V3SlRSVEVlTUJ3R0ExVUVDZ3dWVG05eVpHVmhJRUpoYm1zZ1FVSWdLSEIxWW13cE1Tb3dLQVlEVlFRTERDRk9aWFJpWVc1cmFXNW5JQ1lnU1c1MFpXZHlZWFJwYjI0Z1UyVnlkbWxqWlhNeEl6QWhCZ05WQkFNTUdrWnBiR1VnVkhKaGJuTm1aWElnVjJWaUlGTmxjblpwWTJWek1JR2ZNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0R05BRENCaVFLQmdRQ0dKcUx2alRpYU0reW90Q2Vza1lvZVAvYzJFRjAveEppMDd2MUo4UnVBcjFNdTJOVTZ0ZWwzT3NVVG1td1ZZK0dTeHNDaTZnaysxS3ZMVlBnV21xRXJEYWhWcnlIdzNtbkZscnJrbFhjSVR0VWF3N09CYSt4cmozc1NTQk9vbmVSYW5xV0ZIMnRsRGoxcmFWQkVRSlR4eDNtaklvYXdQSUhmUy93OERJOXV0UUlEQVFBQm80SUJERENDQVFnd0NRWURWUjBUQkFJd0FEQVJCZ05WSFE0RUNnUUlTdkZWQjl2N2Vab3dFd1lEVlIwakJBd3dDb0FJUk1lVDJkbDdWc0V3TndZSUt3WUJCUVVIQVFFRUt6QXBNQ2NHQ0NzR0FRVUZCekFCaGh0b2RIUndPaTh2YjJOemNDNXViM0prWldFdWMyVXZVME5CTURFd0RnWURWUjBQQVFIL0JBUURBZ1dnTUlHSkJnTlZIUjhFZ1lFd2Z6QjlvSHVnZVlaM2JHUmhjRG92TDJ4a1lYQXVibUl1YzJVdlkyNDlUbTl5WkdWaEpUSXdRMjl5Y0c5eVlYUmxKVEl3VTJWeWRtVnlKVEl3UTBFbE1qQXdNU3h2UFU1dmNtUmxZU1V5TUVKaGJtc2xNakJCUWlVeU1DaHdkV0pzS1N4alBWTkZQMk5sY25ScFptbGpZWFJsY21WMmIyTmhkR2x2Ym14cGMzUXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBSVpiemF4b0pVVkdDUE1LUXNlRnM3RStnLy9IWmJlZDFaTlZROHZSeS8rTDdpZUlXS2N6TFdyTXZIWmQ4R3ArODRRQUM1ZEtySEQrQnNXQlVwNVZMblZXSDZmNkVHelNIZGFWOUZDTVJxSER6TXpkZnBhdlJZSG0rdnRGM2srYnh0MmY2em5QbW8wYllCdFJqdXZ1TFgwTUxubkxhYWJUSjNwMmFzcEFJWjRRWEM3WFBURzFSWFZkYk5VVlJPWVd1dmlQa0Y0VlVyZEhNSFFyd3pIVjQwbVZaMEpESkRJdU5FTE1FTGRSMzdseXQwazZOQk9vclFFYkRpcU9admRmNUc0VnIwSXBnUzJRL3pvck9Va2NLa2RKeDhyUTl5Z1VtZUZHaGQ4VTNCV3NNemtKZDhra0tlYU5NRS9LOWFUb3RyVGgyaVRPWmdyT0lvODNBaG9OZlp3PTwvWDUwOUNlcnRpZmljYXRlPjxYNTA5SXNzdWVyU2VyaWFsPjxYNTA5SXNzdWVyTmFtZT5zZXJpYWxOdW1iZXI9NTE2NDA2LTAxMjAsIENOPU5vcmRlYSBDb3Jwb3JhdGUgU2VydmVyIENBIDAxLCBPPU5vcmRlYSBCYW5rIEFCIChwdWJsKSwgQz1TRTwvWDUwOUlzc3Vlck5hbWU+PFg1MDlTZXJpYWxOdW1iZXI+MjI2NDE2OTQ8L1g1MDlTZXJpYWxOdW1iZXI+PC9YNTA5SXNzdWVyU2VyaWFsPjwvWDUwOURhdGE+PC9LZXlJbmZvPjwvU2lnbmF0dXJlPjwvYzJiOkFwcGxpY2F0aW9uUmVzcG9uc2U+</mod:ApplicationResponse>
43
- </cor:downloadFileout>
44
- </soapenv:Body>
45
- </soapenv:Envelope>
2
+ <soapenv:Envelope xmlns:mod="http://model.bxd.fi" xmlns:cor="http://bxd.fi/CorporateFileService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsu:Timestamp wsu:Id="Timestamp-1bfa8afa-2471-4057-b853-b9bb2f33320d" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsu:Created>2014-08-06T08:29:26Z</wsu:Created><wsu:Expires>2014-08-06T08:34:26Z</wsu:Expires></wsu:Timestamp><wsse:BinarySecurityToken wsu:Id="SecurityToken-46eb368f-eac3-43f5-953d-ba53587dfbe0" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">MIID8TCCAtmgAwIBAgIEAVl8HjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQGEwJTRTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMSYwJAYDVQQDEx1Ob3JkZWEgQ29ycG9yYXRlIFNlcnZlciBDQSAwMTEUMBIGA1UEBRMLNTE2NDA2LTAxMjAwHhcNMTIwODE2MDgxMTU5WhcNMTQwODE2MDgxMTU5WjB+MQswCQYDVQQGEwJTRTEeMBwGA1UECgwVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMSowKAYDVQQLDCFOZXRiYW5raW5nICYgSW50ZWdyYXRpb24gU2VydmljZXMxIzAhBgNVBAMMGkZpbGUgVHJhbnNmZXIgV2ViIFNlcnZpY2VzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGJqLvjTiaM+yotCeskYoeP/c2EF0/xJi07v1J8RuAr1Mu2NU6tel3OsUTmmwVY+GSxsCi6gk+1KvLVPgWmqErDahVryHw3mnFlrrklXcITtUaw7OBa+xrj3sSSBOoneRanqWFH2tlDj1raVBEQJTxx3mjIoawPIHfS/w8DI9utQIDAQABo4IBDDCCAQgwCQYDVR0TBAIwADARBgNVHQ4ECgQISvFVB9v7eZowEwYDVR0jBAwwCoAIRMeT2dl7VsEwNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5ub3JkZWEuc2UvU0NBMDEwDgYDVR0PAQH/BAQDAgWgMIGJBgNVHR8EgYEwfzB9oHugeYZ3bGRhcDovL2xkYXAubmIuc2UvY249Tm9yZGVhJTIwQ29ycG9yYXRlJTIwU2VydmVyJTIwQ0ElMjAwMSxvPU5vcmRlYSUyMEJhbmslMjBBQiUyMChwdWJsKSxjPVNFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwDQYJKoZIhvcNAQEFBQADggEBAIZbzaxoJUVGCPMKQseFs7E+g//HZbed1ZNVQ8vRy/+L7ieIWKczLWrMvHZd8Gp+84QAC5dKrHD+BsWBUp5VLnVWH6f6EGzSHdaV9FCMRqHDzMzdfpavRYHm+vtF3k+bxt2f6znPmo0bYBtRjuvuLX0MLnnLaabTJ3p2aspAIZ4QXC7XPTG1RXVdbNUVROYWuviPkF4VUrdHMHQrwzHV40mVZ0JDJDIuNELMELdR37lyt0k6NBOorQEbDiqOZvdf5G4Vr0IpgS2Q/zorOUkcKkdJx8rQ9ygUmeFGhd8U3BWsMzkJd8kkKeaNME/K9aTotrTh2iTOZgrOIo83AhoNfZw=</wsse:BinarySecurityToken><Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
3
+ <SignedInfo>
4
+ <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
5
+ <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
6
+ <Reference URI="#Timestamp-1bfa8afa-2471-4057-b853-b9bb2f33320d">
7
+ <Transforms>
8
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
9
+ </Transforms>
10
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
11
+ <DigestValue>z03EPTGHNfagjl640D9AUHXwWMs=</DigestValue>
12
+ </Reference>
13
+ <Reference URI="#Body-0d136bf1-481f-453b-ab42-9dccc3ef648b">
14
+ <Transforms>
15
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
16
+ </Transforms>
17
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
18
+ <DigestValue>RWs7OOFUvZL+jIP8znWPiw7NkDQ=</DigestValue>
19
+ </Reference>
20
+ </SignedInfo>
21
+ <SignatureValue>UMfTdBz6kLgZry4gOLRifKBJqigPWxQLvFLsbShfVtKtc1ssZ9PkJapLmi+kmum1yiHQCf2CALklirc8IMBDJqX+yqePfLByYEX5gvaabc9sDBux51+fRxNSWUutIO1kfSOuzK1J+M7lCFDcZHT9BpUu+dcm0gwopZ22V3EBoo4=</SignatureValue><KeyInfo><wsse:SecurityTokenReference xmlns=""><wsse:Reference URI="#SecurityToken-46eb368f-eac3-43f5-953d-ba53587dfbe0" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></KeyInfo></Signature></wsse:Security></soapenv:Header><soapenv:Body wsu:Id="Body-0d136bf1-481f-453b-ab42-9dccc3ef648b" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><cor:downloadFileout><mod:ResponseHeader><mod:SenderId>11111111</mod:SenderId><mod:RequestId>309dfb0f2c839a4595dbb700564919826f</mod:RequestId><mod:Timestamp>2014-08-06T10:29:26+02:00</mod:Timestamp><mod:ResponseCode>00</mod:ResponseCode><mod:ResponseText>OK.</mod:ResponseText><mod:ReceiverId>11111111A1</mod:ReceiverId></mod:ResponseHeader><mod:ApplicationResponse>PGMyYjpBcHBsaWNhdGlvblJlc3BvbnNlIHhtbG5zOmMyYj0iaHR0cDovL2J4ZC5maS94bWxkYXRhLyI+PGMyYjpDdXN0b21lcklkPjExMTExMTExPC9jMmI6Q3VzdG9tZXJJZD48YzJiOlRpbWVzdGFtcD4yMDE0LTA4LTA2VDEwOjI5OjI2KzAyOjAwPC9jMmI6VGltZXN0YW1wPjxjMmI6UmVzcG9uc2VDb2RlPjAwPC9jMmI6UmVzcG9uc2VDb2RlPjxjMmI6UmVzcG9uc2VUZXh0Pk9LLjwvYzJiOlJlc3BvbnNlVGV4dD48YzJiOkVuY3J5cHRlZD5mYWxzZTwvYzJiOkVuY3J5cHRlZD48YzJiOkNvbXByZXNzZWQ+ZmFsc2U8L2MyYjpDb21wcmVzc2VkPjxjMmI6Q29udGVudD5NREEyTURNd016SXpOVGt5SURBeE1URXhNVEV4TVRFME5EUTBORFEwTkVFd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdEUW96TVRrMU1ETXdNREF3TURBd01UQXdOakF6TURNd05qQXpNREl3TXpBeU5VeE5JQ0FnSUNBMk5UUTFNREF3TURBd01EQXdNREF3TURBd01EQXdNVE5NVDFCRlRpQlFSVkpWVGtFeFFUQXdNREF3TXpJek1qUXdRVEFOQ2pNeE9UVXdNekF3TURBd01EQXhNREEyTURNd016QTJNRE13TXpBek1ETXhPVFV3UVVFeE1qTXhPRFV3TURBd01EQXdNREF3TURBd01EUTFOVFF6TlZSVlZGUlZJRlJKVFU4Z0lERkxNREF3TURBM056WTBNREJMTUEwS016RTVOVEF6TURBd01EQXdNREV3TURZd016QXpNRFl3TXpBek1ETXdNekU1TlRCQlFURXlNelkzT0RBd01EQXdNREF3TURBd01EQXdPRFEwTmpjM1VFOVZWRUVnVUVsTVZra2dNVXN3TURBd01EZzFNVFV3TUVzd0RRb3pNVGsxTURNd01EQXdNREF3TVRBd05qQXpNRE13TmpBek1ETXdNekF6TWpVNE9EYzNRa0V4TWpNME1EQXdNREF3TURBd01EQXdNREE0T1RBNU1qSkxWVXhOUVU0Z1MwRlZVRkF4U2pBd01EQXhNek15T0RNd1FUQU5Dak14T1RVd016QXdNREF3TURBeE1EQTJNRE13TXpBMk1ETXdNekF6TURNeU5UZzROemd3TVRRME5EUXdNREF3TURBd01EQXdNREF3TWpVek5UTXpOMHRCVTFaSklFdEpSVXhQSURGS01EQXdNREUyTVRneU5EQkJNQTBLTXpFNU5UQXpNREF3TURBd01ERXdNRFl3TXpBek1EWXdNekF6TURNd016STFPRGczT1RBeU5UVTFOVEF3TURBd01EQXdNREF3TURBMk5qYzROelV6U0VGT1RsVk1RU0JQV1NBZ01Vb3dNREF3TURjeU5EVXdNRUV3RFFvek1UazFNRE13TURBd01EQXdNVEF3TmpBek1ETXdOakF6TURNd016QXpNalU0T0RjNFFrRXdNVEUwTURBd01EQXdNREF3TURBd01ETXdPRGd4T0RkT1JVeE1TU0FtSUVOUElDQXhTakF3TURBd09EVTFOVEF3UVRBTkNqVXhPVFV3TXpBd01EQXdNREF4TURBMk1ETXdNekEyTURNd016QXpNRE15TlRnNE56TXhTekF3TURnd01EQXdNREF3TURJek1EQXdNREE1TkRJNE1FMUJTMU5CU2tFZ1RVRlVWREZLTURBd01EQTFOREV5TnpCQk1BMEtOVEU1TlRBek1EQXdNREF3TURFd01EWXdNekF6TURZd016QXpNRE13TWpJMU9EZzNNekZMTURVd05UQXdNREF3TURBd01qTTBNREF3TURrMU16VXdUMU5VUVVwQklFOVRVMGtnTVVvd01EQXdNRGM0T0RRMk1FRXdEUW8xTVRrMU1ETXdNREF3TURBd01UQXdOakF6TURNd05qQXpNRE13TXpBeU1qVTRPRGN6TVVzd016azVNREF3TURBd01EQTBOalV3TURBd05URTJNVEpVVlZSVVZTQlVTVTFQSUNBeFNqQXdNREF3TmpFek5Ea3dRVEFOQ2pVeE9UVXdNekF3TURBd01EQXhNREEyTURNd016QTJNRE13TXpBek1ESXlOVGc0TnpNeFN6QTJPREl3TURBd01EQXdNRFE1TWpBd01EQTBOVFUwTWxCUFZWUkJJRkJKVEZaSklERkJNREF3TURBeE56QTJOREJCTncwS05URTVOVEF6TURBd01EQXdNREV3TURZd016QXpNRFl3TXpBek1ETXdNakkxT0RnM016RkxPVFU0T1RBd01EQXdNREF3TlRFNE1EQXdNRGcxTlRZd1RVRkxVMEZLUVNCTlFVbEtNVUV3TURBd01ERXlNRGN5TUVFMERRbzFNVGsxTURNd01EQXdNREF3TVRBd05qQXpNRE13TmpBek1ETXdNekF5TWpVNE9EY3pNVXN3TURFME1EQXdNREF3TURBNE1UQXdNREF3T1RBMk5UQlBVMU5KVGlCQlZWUlBJRTh4U2pBd01EQXdNVGMzTkRZd1FUQU5Damt3TURBd01URXdNREF3TURnMk1ESTRPVEF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBeU1EQXdNREF3TWpreE16WXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNQTBLPC9jMmI6Q29udGVudD48U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4KPFNpZ25lZEluZm8+CiAgPENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSIvPgogIDxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiLz4KICA8UmVmZXJlbmNlIFVSST0iIj4KICAgIDxUcmFuc2Zvcm1zPgogICAgICA8VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz4KICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1Ii8+CiAgICA8L1RyYW5zZm9ybXM+CiAgICA8RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiLz4KICAgIDxEaWdlc3RWYWx1ZT4vc3N3cHNJajBXT0NpWDJYMFZOeGIyRndzZ0k9PC9EaWdlc3RWYWx1ZT4KICA8L1JlZmVyZW5jZT4KPC9TaWduZWRJbmZvPgogICAgPFNpZ25hdHVyZVZhbHVlPlN0RWpjczJHcnhLK3IxaXdQYTFERTBiMFNoMXFBN1ZPczRvam9TeDNSWjVDdEM5dUxkLy9kZ3ZYSm5aRzRoVFJSSjBZaHQwRlpYK3E5eFF2SFdTaTFrdlFnQmV5czdDaEE5QVlGYldEeEVEajNEZnQxQlFxS0ZWUlRLL3VUcUYxVXVTMTl0T2tuZmxMby9zOU1SYmt6RkVjeEpzQjVOaXduMmlrbVVlc3JKZz08L1NpZ25hdHVyZVZhbHVlPjxLZXlJbmZvPjxYNTA5RGF0YT48WDUwOUNlcnRpZmljYXRlPk1JSUQ4VENDQXRtZ0F3SUJBZ0lFQVZsOEhqQU5CZ2txaGtpRzl3MEJBUVVGQURCck1Rc3dDUVlEVlFRR0V3SlRSVEVlTUJ3R0ExVUVDaE1WVG05eVpHVmhJRUpoYm1zZ1FVSWdLSEIxWW13cE1TWXdKQVlEVlFRREV4MU9iM0prWldFZ1EyOXljRzl5WVhSbElGTmxjblpsY2lCRFFTQXdNVEVVTUJJR0ExVUVCUk1MTlRFMk5EQTJMVEF4TWpBd0hoY05NVEl3T0RFMk1EZ3hNVFU1V2hjTk1UUXdPREUyTURneE1UVTVXakIrTVFzd0NRWURWUVFHRXdKVFJURWVNQndHQTFVRUNnd1ZUbTl5WkdWaElFSmhibXNnUVVJZ0tIQjFZbXdwTVNvd0tBWURWUVFMRENGT1pYUmlZVzVyYVc1bklDWWdTVzUwWldkeVlYUnBiMjRnVTJWeWRtbGpaWE14SXpBaEJnTlZCQU1NR2tacGJHVWdWSEpoYm5ObVpYSWdWMlZpSUZObGNuWnBZMlZ6TUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDR0pxTHZqVGlhTSt5b3RDZXNrWW9lUC9jMkVGMC94SmkwN3YxSjhSdUFyMU11Mk5VNnRlbDNPc1VUbW13VlkrR1N4c0NpNmdrKzFLdkxWUGdXbXFFckRhaFZyeUh3M21uRmxycmtsWGNJVHRVYXc3T0JhK3hyajNzU1NCT29uZVJhbnFXRkgydGxEajFyYVZCRVFKVHh4M21qSW9hd1BJSGZTL3c4REk5dXRRSURBUUFCbzRJQkREQ0NBUWd3Q1FZRFZSMFRCQUl3QURBUkJnTlZIUTRFQ2dRSVN2RlZCOXY3ZVpvd0V3WURWUjBqQkF3d0NvQUlSTWVUMmRsN1ZzRXdOd1lJS3dZQkJRVUhBUUVFS3pBcE1DY0dDQ3NHQVFVRkJ6QUJoaHRvZEhSd09pOHZiMk56Y0M1dWIzSmtaV0V1YzJVdlUwTkJNREV3RGdZRFZSMFBBUUgvQkFRREFnV2dNSUdKQmdOVkhSOEVnWUV3ZnpCOW9IdWdlWVozYkdSaGNEb3ZMMnhrWVhBdWJtSXVjMlV2WTI0OVRtOXlaR1ZoSlRJd1EyOXljRzl5WVhSbEpUSXdVMlZ5ZG1WeUpUSXdRMEVsTWpBd01TeHZQVTV2Y21SbFlTVXlNRUpoYm1zbE1qQkJRaVV5TUNod2RXSnNLU3hqUFZORlAyTmxjblJwWm1sallYUmxjbVYyYjJOaGRHbHZibXhwYzNRd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFJWmJ6YXhvSlVWR0NQTUtRc2VGczdFK2cvL0haYmVkMVpOVlE4dlJ5LytMN2llSVdLY3pMV3JNdkhaZDhHcCs4NFFBQzVkS3JIRCtCc1dCVXA1VkxuVldINmY2RUd6U0hkYVY5RkNNUnFIRHpNemRmcGF2UllIbSt2dEYzaytieHQyZjZ6blBtbzBiWUJ0Ump1dnVMWDBNTG5uTGFhYlRKM3AyYXNwQUlaNFFYQzdYUFRHMVJYVmRiTlVWUk9ZV3V2aVBrRjRWVXJkSE1IUXJ3ekhWNDBtVlowSkRKREl1TkVMTUVMZFIzN2x5dDBrNk5CT29yUUViRGlxT1p2ZGY1RzRWcjBJcGdTMlEvem9yT1VrY0trZEp4OHJROXlnVW1lRkdoZDhVM0JXc016a0pkOGtrS2VhTk1FL0s5YVRvdHJUaDJpVE9aZ3JPSW84M0Fob05mWnc9PC9YNTA5Q2VydGlmaWNhdGU+PFg1MDlJc3N1ZXJTZXJpYWw+PFg1MDlJc3N1ZXJOYW1lPnNlcmlhbE51bWJlcj01MTY0MDYtMDEyMCwgQ049Tm9yZGVhIENvcnBvcmF0ZSBTZXJ2ZXIgQ0EgMDEsIE89Tm9yZGVhIEJhbmsgQUIgKHB1YmwpLCBDPVNFPC9YNTA5SXNzdWVyTmFtZT48WDUwOVNlcmlhbE51bWJlcj4yMjY0MTY5NDwvWDUwOVNlcmlhbE51bWJlcj48L1g1MDlJc3N1ZXJTZXJpYWw+PC9YNTA5RGF0YT48L0tleUluZm8+PC9TaWduYXR1cmU+PC9jMmI6QXBwbGljYXRpb25SZXNwb25zZT4=</mod:ApplicationResponse></cor:downloadFileout></soapenv:Body></soapenv:Envelope>